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

Sylvain picture Sylvain · Feb 6, 2014 · Viewed 32.2k times · Source

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, ...

Answer

preeve picture preeve · Feb 6, 2014

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