Selenium 停止测试直到网页中不再发生任何事情的等待

Selenium 停止测试直到网页中不再发生任何事情的等待,selenium,selenium-webdriver,selenium-chromedriver,Selenium,Selenium Webdriver,Selenium Chromedriver,我正在使用Java和Selenium编写一个测试。很多时候,在我的测试中,我不得不等到页面或页面的某个部分加载某些内容。我想等到货物装完。我发现这两个: 1) pageLoadTimeout 2) setScriptTimeout 但我不知道它们之间的确切区别,甚至不知道它们是否是我所需要的。 文件说: setScriptTimeout:设置在抛出错误之前等待异步脚本完成执行的时间量。如果超时为负,则允许脚本无限期运行。 及 pageLoadTimeout:设置在抛出错误之前等待页面加载完成的

我正在使用Java和Selenium编写一个测试。很多时候,在我的测试中,我不得不等到页面或页面的某个部分加载某些内容。我想等到货物装完。我发现这两个:

1) pageLoadTimeout
2) setScriptTimeout
但我不知道它们之间的确切区别,甚至不知道它们是否是我所需要的。 文件说:

setScriptTimeout:设置在抛出错误之前等待异步脚本完成执行的时间量。如果超时为负,则允许脚本无限期运行。

pageLoadTimeout:设置在抛出错误之前等待页面加载完成的时间量。如果超时为负,则页面加载可能是不确定的。

但我真的不明白

我需要的是一个等待,停止测试,直到网页中不再发生任何事情。

定义“网页中未发生任何事情”。现在定义它的方式将满足曾经创建或将要创建的每个网页。您的定义是否包括不再有网络流量通过网络传输?您的定义是否包括
onload
事件已触发?
document.readyState
返回一个表示“完成”的值怎么样?您是否考虑了JavaScript执行?使用
window.setTimeout()
调度JavaScript如何?网袋?服务人员?那么
元素呢

现在您知道为什么WebDriver没有“等待页面完成”类型的等待了。上面提到的项目甚至没有开始触及用户在定义“页面上不再发生任何事情”时可以合法使用的内容列表的表面。正确的方法是等待您希望在下一个页面上与之交互的元素在DOM中可用。
WebDriverWait
类非常适合这种情况

定义“网页中没有发生任何事情”。现在定义它的方式将满足曾经创建或将要创建的每个网页。您的定义是否包括不再有网络流量通过网络传输?您的定义是否包括
onload
事件已触发?
document.readyState
返回一个表示“完成”的值怎么样?您是否考虑了JavaScript执行?使用
window.setTimeout()
调度JavaScript如何?网袋?服务人员?那么
元素呢


现在您知道为什么WebDriver没有“等待页面完成”类型的等待了。上面提到的项目甚至没有开始触及用户在定义“页面上不再发生任何事情”时可以合法使用的内容列表的表面。正确的方法是等待您希望在下一个页面上与之交互的元素在DOM中可用。
WebDriverWait
类非常适合这种情况

@Louis请问你知道答案吗?@Louis请问你知道答案吗?我刚刚与一位在测试松弛组有20多年经验的高级QA人员进行了交流,他想要同样的东西,我解释说这就是等待策略的用武之地,令人惊讶的是,他拒绝了我们所说的一切,称使用等待为“愚蠢/懒惰”我刚刚与一位在测试松弛组有20多年经验的高级QA人员进行了交流,他也想要同样的东西,我解释说这就是等待策略的用武之地,令人惊讶的是,他拒绝了我们所说的一切,称使用“愚蠢/懒惰”的等待方式,并离开了松弛通道。