【发布时间】:2019-11-13 11:50:59
【问题描述】:
我对 Selenium 还很陌生,我正在为使用它的 Web 应用程序编写测试。在此过程中,我使用断言来确保 Web 应用程序正常工作。对于其中一些断言,我在一个 web 元素上断言,该元素具有一个已知预期数字的数值。问题是当进行更改以更改此数值时,更改会根据互联网连接的速度逐渐发生。到目前为止,在我使用断言之前已经诉诸于使用睡眠来等待元素完成刷新,但我想这样做,所以这个等待不会超过元素停止刷新所需的时间,因此不必包括太短或太长的睡眠。
【问题讨论】:
-
Selenium 的操作将等待页面加载事件。如果此元素是在没有页面加载的情况下动态创建的,您将需要使用 WebDriverWait 和 ExpectedCondition。然后它会轮询 DOM,直到满足预期的条件,或者达到超时期限。 (或抛出“陈旧元素”异常......)
-
@orde Selenium 2.0 现在真的很老了......关于这个问题有很多非常糟糕的答案。 Selenium 现在在许多/大多数情况下会自动等待页面加载。
-
欢迎来到 Stack Overflow!请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享该研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
-
@JeffC:粗鲁。我没有仔细看答案。我的错。我已经删除了欺骗标志,所以它不会指向那个答案。但这个问题仍然是“我该如何等待?”的欺骗。 (这似乎每天都会被问到,并且可以通过基本的谷歌搜索或 RTM 轻松找到)。
-
@orde 同意...我们确实需要一个很好的规范更新答案来回答这个问题以及每天都会询问的其他 20 个问题。
标签: java selenium selenium-webdriver expected-condition