【问题标题】:wait until page loads completely using selenium 3?等到使用 selenium 3 完全加载页面?
【发布时间】:2017-04-26 13:25:38
【问题描述】:
public boolean WaitForPageToLoad(){   

final ExpectedCondition<Boolean> pageLoadCondition = new ExpectedCondition<Boolean>() {
        public Boolean apply(final WebDriver driver) {
            return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
        }
    };

    final WebDriverWait wait = new WebDriverWait(this.driver, this.defaultTimeoutinSeconds);
    final boolean IsPageLoad = wait.until(pageLoadCondition);

    if (!IsPageLoad) {
        log.logInfo("Page doesn't load after " + this.defaultTimeoutinSeconds + " seconds");
    }
    return IsPageLoad;
}

上面的代码在 selenium 2.53.1 中工作,但是当我升级到 Selenium 3.1.X 时,上面的代码不兼容。 Plaese 任何人都可以转换上述代码以使其与 selenium 3 兼容。我遇到错误
FluentWait 类型中的 until(Function) 方法不适用于参数 (new ExpectedCondition(){})强>

【问题讨论】:

标签: javascript java selenium-webdriver selenium3


【解决方案1】:

此代码适用于 Selenium3

driver = (new Driver(Driver.Browser.SAFARI)).getDriver();

driver.navigate().to("http://www.epochconverter.com/");

waitForLoad(driver);

static void  waitForLoad(WebDriver driver) {
    new WebDriverWait(driver, 50).until((ExpectedCondition<Boolean>) wd ->
    ((JavascriptExecutor) wd).executeScript("return document.readyState").equals("complete"));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2019-03-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    相关资源
    最近更新 更多