Protractor waiting for element to be in DOM

Tyler Pflueger picture Tyler Pflueger · May 13, 2015 · Viewed 53k times · Source

I have been having some trouble using Protractor. I have a really weird ui-router state where its hard to go off of other elements to start working with the page. Is there any way to tell protractor to wait until an element finally appears in the DOM? Not visible/displayed, but actually created? I keep trying to use wait for the element but it is clearly not available to be selected.

browser.driver.wait(function () {
    return elem.isDisplayed();
});

Answer

Michal Charemza picture Michal Charemza · May 13, 2015

You should be able to use browser.wait together with the presenceOf ExpectedCondition:

var until = protractor.ExpectedConditions;
browser.wait(until.presenceOf(elem), 5000, 'Element taking too long to appear in the DOM');