Я использую Fluent wait и вижу, что возвращаемое значение функции - WebElement. Тем не менее, я хочу повторить true или false в зависимости от присутствия элемента. Как мне это сделать? Я передаю эту страницу - https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/FluentWait.html
Фрагмент кода здесь -
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, SECONDS)
.pollingEvery(5, SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("foo"));
}
});
Я пытался перейти на ниже, но это дает мне ошибку -
Метод до (Функция) в типе
Ожидание не применимо для аргументов (новый
Функция () {})
Вот что я изменил -
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver).withTimeout(retryCount, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS).ignoring(NoSuchElementException.class);
Boolean foo = wait.until(new Function<WebElement, Boolean>() {
public Boolean apply(WebElement by) {
return true;
}
});
Я использую Guava версии 23.0, Selenium 3.0, Java 1.8. *