Broda Noel
Broda Noel

Reputation: 1980

How to check if "should has text" in Jasmine?

I need to do something like:

expect(theElement.hasText()).toBe(true);

Do you know how can I do it?

I know that there is a "getText" function in protractor, but, how can I use it? Should I do?:

expect(theElement.getText().lenght > 0).toBe(true);

Thanks!

Upvotes: 3

Views: 2640

Answers (2)

alecxe
alecxe

Reputation: 473873

I find jasmine-matchers library very helpful in terms of additional useful matchers. toBeNonEmptyString() is a perfect fit here (also notice how readable it is):

expect(theElement.getText()).toBeNonEmptyString();

FYI, here is the underlying implementation:

matchers.toBeNonEmptyString = function() {
  return matchers.toBeString.call(this) &&
    this.actual.length > 0;
};

It is quite reliable: it checks the type and the length.

Upvotes: 7

Stan
Stan

Reputation: 3461

If you want to check length and don't want to use toBeNonEmpty, then check it in the callback

element(by.id('element_id')).getText().then(function (data) {
  expect(data.length).toBeGreaterThan(0);
});

Upvotes: 0

Related Questions