如何在 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中文网其他相关文章!