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

angularjs-e2e, protractor

Solution

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

Problem

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

Original source