在 Selenium 中,验证网页是否已完全加载是一个常见的要求。在实现此功能时,用户经常会遇到现有解决方案的问题。
通用函数可用性
不幸的是,Selenium 中没有通用函数可以直接检查页面是否具有完全加载。
页面加载策略和 JavaScript执行
在您的代码尝试中,您使用了 pageLoadTimeout 和 document.readyState 评估。然而,页面加载策略控制 Selenium 何时认为页面已完全加载,但它并不保证所有元素都存在。等待 document.readyState 为“完整”仅表明 HTML 结构可用。
等待页面加载完成
需要更全面的方法来确保所有页面元素均可见并已加载。
页面加载策略
使用 DesiredCapability 或 ChromeOptions 将页面加载策略设置为“正常”有助于捕获 document.readyState 何时“完成”。不过,这仍然不能保证所有资源都被加载。
动态元素等待
对于使用 JavaScript 和 Ajax 调用的动态页面,可以使用以下函数等待完成:
public void WaitForAjax2Complete() throws InterruptedException { while (true) { if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")) { break; } Thread.sleep(100); } }
预期条件
将 WebDriverWait 与 ExpectedConditions(如 titleContains() 或 VisibilityOfElementLocated())结合使用,可以分别确保页面标题可见或特定元素可访问。
new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));
结论
检查网络是否在 Selenium 中完全加载页面需要多方面的方法,包括页面加载策略、动态内容等待以及验证特定元素是否可用。请考虑提供的示例和参考以增强您自己的实现。
以上是如何可靠地检查 Selenium 中的完整页面加载?的详细内容。更多信息请关注PHP中文网其他相关文章!