Protractor, with isDisplayed() I get NoSuchElementError: No element found using locator

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:

  • How do I test if an img tag exists?
  • Use element by css to check if element exists in Protractor

This error is part of WebDriver behavior. For such cases you should better use isPresent or isElementPresent


If element visible do A if not visible do B, disregard exception if element not found:

element.isDisplayed().then(function(visible){
    if (visible) {
        // do A when element visible
    }else{
        // do B when element not visible 
    }
}, function () {
    //suppress exception if element is not found on page
});