我同时使用wait(until.elementLocated(element, timeout))
和wait(until.elementVisible(element, timeout))
。“等到可见”在“等到找到”没有的地方失败。为什么?
问问题
3694 次
3 回答
3
wait(until.elementLocated(element, timeout))
由于您的问题是和您没有标记任何 Selenium 绑定之间的区别wait(until.elementVisible(element, timeout))
,我将从 Java 的角度解释它。
until.elementLocated()
相当于presenceOfElementLocated()
Java。它检查页面的 HTML DOM 中是否存在元素。这并不一定意味着元素是可见的。所以不能保证它是可交互的。until.elementVisible()
相当于visibilityOfElementLocated()
Java。它检查一个元素是否存在于页面的 HTML DOM 中并且是可见的。可见性意味着元素不仅被显示,而且具有大于 0的高度和宽度。同样,这并不一定意味着该元素是可交互的,即可点击的。
有关ExpectedConditions
Java 的更多详细信息,请参阅文档。
于 2018-01-25T08:35:08.730 回答
1
until.elementLocated(element, timeout) 和 until.elementVisible(element, timeout) 都用于获取元素。
但我猜 elementLocated 会更快,因为它只是检查页面的 DOM 上是否存在元素,并不一定意味着该元素是可见的。而 elementVisible 必须检查一个元素是否存在于页面的 DOM 上并且可见。可见性意味着元素不仅被显示,而且还具有高度和宽度。
希望这将解释差异。
于 2018-01-25T09:53:47.153 回答
1
等到可见确实做到了。它一直等到元素可见。元素可以在 DOM 中,但可以隐藏。在这种情况下,它将能够被定位但不可见。
于 2018-01-25T02:12:26.283 回答