FluentWait перестала работать после обновления образа узла-хрома.
У меня следующее условие ожидания.
Wait<RemoteWebDriver> wait = new FluentWait<>(driver)
.withTimeout(Duration.ofSeconds(30))
.pollingEvery(Duration.ofMillis(500))
.ignoring(NoSuchElementException.class)
.ignoring(StaleElementReferenceException.class)
.withMessage("TimeoutException is thrown");
wait.until(condition)
Я ожидаю, что условие будет проверяться каждые 500 миллисекунд до 30 секунд. Этот код работал, но недавно перестал работать. Я использую селеновую сетку с узлом хрома от 3.141.59
https://hub.docker.com/r/selenium/node-chrome/tags
Интервал пула не используется для проверки условия. Поведение не согласовано, и иногда все работает.
Я проверяю, является ли URL браузера перенаправленным.
public static ExpectedCondition<Boolean> isUrlRedirected(String originalUrl) {
return new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
Boolean b = (Boolean) !driver.getCurrentUrl().equals(originalUrl);
if(logger.isDebugEnabled()) {
logger.debug("Driver url redirects ... "+b);
}
return b;
}
};
}
Ожидаемый результат - это должно работать согласованно, и условие должно проверяться в соответствии с настроенным интервалом пула.