Selenium FluentWait непредсказуемое поведение - PullRequest
0 голосов
/ 03 июля 2019

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;
            }
        };
    }

Ожидаемый результат - это должно работать согласованно, и условие должно проверяться в соответствии с настроенным интервалом пула.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...