In a protractor end to end test, I want to check if an element exist using element(by.css(...)), my code:
var myElement = element(by.css('.elementClass')); expect(myElement).toBeUndefined; This test fails, it says:
Expected { locator_ : { using : 'css selector', value : 'div[ng-switch- when="resultNav"]' }, parentElementFinder_ : null, opt_actionResult_ : undefined, opt_index_ : undefined, click : Function, sendKeys : Function, getTagName : Function, getCssValue : Function, getAttribute : Function, getText : Function, getSize : Function, getLocation : Function, isEnabled : Function, isSelected : Function, submit : Function, clear : Function, isDisplayed : Function, getOuterHtml : Function, getInnerHtml : Function, toWireValue : Function } to be undefined. After that I tried to use a promise:
element(by.css('.elementClass')).then( functtion(data) { expect(data.getText()).toBeUndefined(); }); This results in an error:
Error: No element found using locator By.CssSelector(...)
Yes, I know that no element will be found, but how can I create a working test using element(by.css(...))?
Does anyone know how to achieve this? or is element(by.css()) not the method to use here?
ElementArray (element.ElementArrayFinder is used to get an array/list of elements and perform operations on them. You can call an array of elements and filter them by condition to return a new element. After getting the new element and using then() function to perform operation on new element.
You can test whether the element is present with isPresent. Here are the protractor docs for the isPresent function.
So, your code would be something like:
var myElement = element(by.css('.elementClass')); expect(myElement.isPresent()).toBeFalsy();
You need to test if the element is not present:
expect(element(by.css('.elementClass')).isPresent()).toBe(false);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With