如何知道页面何时完成加载?

时间:2016-08-18 20:35:20

标签: c# selenium-webdriver

使用selenium driver,我需要知道页面何时加载完毕。

当您导航到新页面时,selenium会这样做。但是,我按下了一个按钮,我需要知道何时加载下一页。

有没有办法做wait_for_loading_complete

之类的事情

1 个答案:

答案 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));
    }