[英]wait until page loads completely using selenium 3?
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;
}
above code was working in selenium 2.53.1 but when I upgraded to Selenium 3.1.X, above code is not compatible. 上面的代码在selenium 2.53.1中运行,但是当我升级到Selenium 3.1.X时,上面的代码不兼容。 Plaese anyone convert above code to make it compatible with selenium 3. I am getting below error
请任何人转换上面的代码以使其与硒3兼容。我得到以下错误
The method until(Function) in the type FluentWait is not applicable for the arguments (new ExpectedCondition(){}) FluentWait类型的until(Function)方法不适用于自变量(新的ExpectedCondition(){})
This code works for me for Selenium3 该代码对我适用于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"));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.