Selenium:检查网页加载完成
许多开发人员努力在 Selenium 中验证网页的完整加载,以进行无缝且准确的测试。但是,与显式元素可见性检查不同,没有现成的通用函数来确定页面加载完成。
尝试过的代码
您尝试使用以下代码进行检查:
new WebDriverWait(firefoxDriver, pageLoadTimeout).until( webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));
但是,正如您所观察到的,这种方法
PageLoadStrategy
虽然 pageLoadStrategy 可以设置为“正常”以确保“document.readyState”等于“完整”,但它并不是万无一失的。 JavaScript 和 Ajax 调用可能仍然未完成,需要采取进一步措施。
无限期等待
等待“jQuery.active == 0”或使用带有 titleContains 的 WebDriverWait 等方法() 涉及无限期的等待时间。
可见元素等待
一种精细的方法是使用带有visibilityOfElementLocated() 的WebDriverWait。这使您的程序专门等待所需元素的可见性,从而更精确地检查其是否已完全加载。
其他参考
有关更多见解,请参阅这些资源:
结论
虽然 Selenium 中没有通用函数来检查页面加载完成情况,通过采用所讨论的技术,例如 PageLoadStrategy、“jQuery.active == 0”、无限期等待,和可见元素等待,可以实现页面加载进度的有效评估。
以上是如何在 Selenium 中可靠地检查网页加载完成情况?的详细内容。更多信息请关注PHP中文网其他相关文章!