首页 >Java >java教程 >如何在 Selenium 中可靠地确定网页加载完成?

如何在 Selenium 中可靠地确定网页加载完成?

Susan Sarandon
Susan Sarandon原创
2024-12-20 12:45:24219浏览

How to Reliably Determine Web Page Load Completion in Selenium?

如何在 Selenium 中确定页面加载完成

Selenium 提供了多种方法来检查网页是否已完全加载,包括:

页面加载超时设置

使用 pageLoadTimeout() 方法,Selenium 等待页面加载在指定的超时时间内完成。但是,此方法可能并非在所有情况下都可靠。

将页面加载策略设置为正常

您可以使用 DesiredCapability 或 ChromeOptions 类将 pageLoadStrategy 设置为正常。这确保浏览器在执行下一行代码之前等待 document.readyState 变为“完成”。

等待 JavaScript 和 Ajax 调用

等待对于要完成的所有 JavaScript 和 Ajax 调用,您可以使用检查 jQuery.active 的自定义函数property:

public void waitForAjax2Complete() throws InterruptedException {
    while (true) {
        if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")){
            break;
        }
        Thread.sleep(100);
    }
}

使用 ExpectedConditions

您可以使用 ExpectedConditions 类等待满足特定条件后再继续操作,例如包含某个特定条件的页面标题字符串:

new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));

或特定的可见性element:

WebElement ele = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath_of_the_desired_element")));

结论

虽然 Selenium 中没有通用函数来检查页面是否已完全加载,但上述方法为不同的情况提供了有效的解决方案用例。通过考虑页面加载策略、等待 JavaScript 和 Ajax 调用或使用 ExpectedConditions,您可以确保测试在继续之前等待适当的条件。

以上是如何在 Selenium 中可靠地确定网页加载完成?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn