Selenium Fluent等待不可预测的行为

时间:2019-07-03 17:00:31

标签: java selenium webdriver

在升级节点镶边图像后,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

中的节点chrome一起使用

未使用合并间隔来检查条件。行为不一致,有时会起作用。

我检查的条件是浏览器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;
            }
        };
    }

预期结果是,此操作应始终如一,并且应根据配置的池间隔验证条件。

0 个答案:

没有答案