Selenium驱动程序 - 等待页面重新加载

cou*_*ech 5 selenium

有没有办法,如何等待页面重新加载?例如,当我在页面上时localhost:9000/web,我再次指示webdriver导航到localhost:9000/web.我不希望或不能通过等待某些元素来指示重新加载.

Sit*_*ana 5

在Selenium WebDriver中,我们可以使用以下代码片段实现waitForPageToLoad:

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

    Wait < WebDriver > wait = new WebDriverWait(driver, 60);
    try {
        wait.until(pageLoad);
    } catch (Throwable pageLoadWaitError) {
        assertFalse("Timeout during page load", true);
    }
}
Run Code Online (Sandbox Code Playgroud)


dda*_*son 0

如果您使用 Selenium RC,那么这就是waitForPageToLoad()方法。

selenium.waitForPagetoLoad() // it might be waitForLoad() - can't remember.
Run Code Online (Sandbox Code Playgroud)

如果您使用 Selenium WebDriver,则所有导航都由 API 处理,并且它将隐式等待,直到浏览器完成导航。

driver.navigate().to().url("http://localhost:9000/web");
Run Code Online (Sandbox Code Playgroud)

另外,请确保将“http://”放在开头。Selenium 可能无法解析“localhost:9000”