等到可见和等到位于Selenium之间有什么区别?

时间:2018-01-24 22:59:40

标签: selenium automated-tests

我正在使用wait(until.elementLocated(element, timeout))wait(until.elementVisible(element, timeout))。等到可见'一个人在等到找到的地方失败了。才不是。为什么呢?

3 个答案:

答案 0 :(得分:0)

等到可见确实如此。它一直等到元素可见。元素可以在DOM中但是可以隐藏。在这种情况下,它可以被定位但不可见。

答案 1 :(得分:0)

由于您的问题是wait(until.elementLocated(element, timeout))wait(until.elementVisible(element, timeout))之间的区别,并且您没有标记任何Selenium绑定,我将从Java角度解释它。

  • until.elementLocated()相当于Java中的presenceOfElementLocated()。它检查页面的HTML DOM中的元素是 present 。这并不一定意味着该元素可见。所以不能保证它是可互动的
  • until.elementVisible()相当于Java中的visibilityOfElementLocated()。它检查页面的HTML DOM中是否存在元素,并且可见。可见性意味着元素不仅会显示,而且高度和宽度大于0 。同样,这并不一定意味着元素可交互,即可点击

有关Java中ExpectedConditions的更多详细信息,请参阅the docs

答案 2 :(得分:0)

until.elementLocated(element,timeout)和until.elementVisible(element,timeout)都用于获取元素。

但我猜想elementLocated会更快,因为它只是检查一个元素是否存在于页面的DOM上,并不一定意味着该元素是可见的。而elementVisible必须检查一个元素是否存在于页面的DOM上并且是可见的。可见性意味着元素不仅会显示,还会有高度和宽度。

希望这能解释其中的差异。