I'm trying to make Selenium wait for an element that is dynamically added to the DOM after page load. I tried this:
fluentWait.until(ExpectedConditions.presenceOfElement(By.id("elementId"));
In case it helps, here is fluentWait
:
FluentWait fluentWait = new FluentWait<>(webDriver) {
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(200, TimeUnit.MILLISECONDS);
}
But it throws a NoSuchElementException
. It looks like presenceOfElement
expects the element to be there, so this is flawed. This must be bread and butter to Selenium, and I don't want to reinvent the wheel... Is there an alternative, ideally without rolling my own Predicate
?