I know that in terms of waiting for web element that isn't in the DOM
yet, the most efficient is a fluent wait. So my question is:
Is there a way to handle and catch the NoSuchElementException
or any exception that fluent wait might throw because the element is not existing?
I need to have a boolean method wherein it will give me result whether the element is found or not.
This method is quite popular on the web.
public void waitForElement(WebDriver driver, final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(60, TimeUnit.SECONDS)
.pollingEvery(2, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
});
}
What I need is, **.ignoring(NoSuchElementException.class);**
will not be ignored. And once the exception is caught, it will return FALSE. On the other hand, when an element is found, it will return TRUE.