In protractor 2.0, I am checking in a expect()
if one element is displayed. I expect a false, but the weird thing is that I get following error:
NoSuchElementError: No element found using locator: By.id(“userForm”)
My code is:
describe('closeModal', function() { it('should close the alert that appears after registration.', function(){ element(by.id('closeAlertModalButton')).click(); expect(element(by.id('userForm')).isDisplayed()).toBeFalsy(); }); });
I understand that I get that error because element is not longer on the page (is what I want to confirm), but shouldn’t I get a false and not a error?
Advertisement
Answer
isDisplayed()
would check if an element is visible or not, but you need to check whether an element is present in DOM or not, use isElementPresent()
or isPresent()
:
expect(browser.isElementPresent(element(by.id('userForm')))).toBe(false); expect(element(by.id('userForm')).isPresent()).toBe(false);
See also: