Sylvain
Sylvain

Reputation: 1579

how to test if a string DON'T match using protractor

I'm migrating my karma-ng-scenario tests suite to protractor. I would like to do something like

// karma-ng-scenario
expect(element('legend').text()).not().toBe("LOGIN_CONNECT");

in the protractor way. But it seems there isn't a not() function.

I'm using angular-translate to bind the LONGIN_CONNECT string into multiple languages and I want to test if the string is translated.

More globally, is there a a way test if something is different ? ... don't have a class, don't exists on the page, is not selected, ...

Upvotes: 18

Views: 34630

Answers (3)

preeve
preeve

Reputation: 1198

It is definitely worth looking at the API docs. I have these open pretty much all the time. There are lots of Web Driver functions you can use like isEnabled(), isDisplayed(), isSelected() etc. Protractor uses Jasmine syntax so you can use '.toBe(false)' to assert things are false. To check for classes, you can do something like:

expect(myElement.getAttribute('class')).toContain('my-class-name');

To compare strings and assert that they do NOT match you could use .not. Jasmine docs say:

Every matcher's criteria can be inverted by prepending .not:

expect(x).not.toEqual(y); compares objects or primitives x and y and passes if they are not equivalent

Upvotes: 25

Mark Rogers
Mark Rogers

Reputation: 97707

You can use something like:

expect(model.getText()).not.toContain('abcdef');

There is a .not property nowadays.

Upvotes: 5

Yap Wee Sing
Yap Wee Sing

Reputation: 41

I'm using the following to check for NOT matching:

expect(element('legend').text() === "LOGIN_CONNECT").toBe(false);

Upvotes: 4

Related Questions