gpt4 book ai didi

selenium - 在 Selenium 中, "wait until the page loading stops"的命令是什么

转载 作者:行者123 更新时间:2023-12-02 19:30:10 24 4
gpt4 key购买 nike

如何让 WebDriver 等待页面加载完全停止。

意味着,它会等待并检查整个页面是否已加载,然后才继续执行下一行。

最佳答案

最大的问题是没有一种通用的、一刀切的解决方案可以适用于大多数用户。在当今动态、AJAX 密集、依赖 JavaScript 的 Web 中,“我的页面何时完成加载”的概念几乎毫无意义。人们可以等待浏览器确定网络流量已完成,但这并不考虑 JavaScript 的执行。人们可以将“完整”定义为页面的 onload 事件已触发,但这忽略了页面使用 setTimeout() 的可能性。此外,这些定义都没有考虑框架或 iframe。

说到 Selenium,有几个因素需要考虑。请记住,Selenium RC API 已有 10 年历史了。在设计和开发时,典型网页的架构使得像 waitForPageToLoad 这样的方法变得实用。另一方面,WebDriver API 认识到当前的现实。各个驱动程序实现通常会尝试在显式页面导航期间等待页面加载(例如,driver.get()),但这种等待将是“尽力而为”,并且不是保证。请注意,由用户交互(例如,element.click())引起的导航不太可能完全等待,因为此类交互是异步的,因此本质上存在竞争条件。

WebDriver 的正确做法是等待您想要交互的元素出现在后续页面上。这最好通过 WebDriverWait 或类似的构造来完成。您可能会在支持库中找到一些其他构造,主要是那些处理页面对象模式的构造。您还可以尝试在驱动程序实例中设置隐式等待超时,但我相信使用它会掩盖意图。

关于selenium - 在 Selenium 中, "wait until the page loading stops"的命令是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26310798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com