使用selenium driver
,我需要知道页面何时加载完毕。
当您导航到新页面时,selenium会这样做。但是,我按下了一个按钮,我需要知道何时加载下一页。
有没有办法做wait_for_loading_complete
?
答案 0 :(得分:0)
我不认为selenium有内置的解决方案来检查页面加载。 但我们可以构建一种方法来验证相同的方法。下面是一些例子,但根据具体情况可能会有更多例子。
第一名:
public void waitUntilPageLoaded(long timeoutSeconds) {
WebDriverWait wait = new WebDriverWait(driver, timeoutSeconds);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//body")));
}
第二名:
public void waitUntilPageLoaded(long timeoutSeconds) {
ExpectedCondition<Boolean> pageLoadFinishedCondition = new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver driver) {
return ((JavascriptExecutor) driver).executeScript(
"return document.readyState").equals("complete");
}
};
WebDriverWait wait = new WebDriverWait(driver, timeoutSeconds);
wait.until(pageLoadFinishedCondition);
}
第3名:
public void waitUntilPageLoaded(int timeoutSeconds, By locator) {
new WebDriverWait(driver, timeoutSeconds).until(ExpectedConditions.presenceOfElementLocated(locator));
}