你能帮我理解ExpectedConditions.refresh
and吗ExpectedConditions.stalenessOf
?
问问题
2237 次
1 回答
4
ExpectedCondtion.referesh
接受ExpectedCondtion
作为参数。
假设您有一个由应用程序操作并重绘的文本字段元素。通常,您会得到StaleElementReferenceException
,因为在WebDriver
调用findElement
方法时,它会将 REFERENCE 保存到对象。如果对象被重绘,则对该对象的引用不再是实际的并被StaleElementReferenceException
抛出。
ExpectedCondition.stalenessOf
等到元素被重绘。如果发生 DOM 操作,这可能有助于等待。然后,您可以再次找到您的元素并执行操作(或使用 PageFactory 创建的元素而不是重新查找它)。
但是,元素可能会被多次操作(例如通过前端的 jQuery 调用)。在这种情况下,等到元素过时并试图找到它,StaleElementReferenceException
无论如何都可能抛出,因为元素又过时了。
在这种情况下,您可以使用ExpectedCondition.refresh(<my-expected-condition>)
. 这将允许您在时间范围内执行操作,而不管元素是否过时
于 2019-04-11T11:20:36.117 回答