我正在使用wait(until.elementLocated(element, timeout))
和wait(until.elementVisible(element, timeout))
。等到可见'一个人在等到找到的地方失败了。才不是。为什么呢?
答案 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上并且是可见的。可见性意味着元素不仅会显示,还会有高度和宽度。
希望这能解释其中的差异。