1

在方法文档中是这样写的:

隐式等待时,只要找到的集合中的项超过0个,该方法就会返回,或者如果达到超时将返回一个空列表

如我所见(如果我错了,请纠正我),当该方法找到一个元素时,它会返回它而不搜索其他元素。那么在使用findElement方法时使用这种方法有什么好处呢?

4

2 回答 2

2

findElements方法返回与传递的定位器匹配的 Web 元素列表findElement,而方法将始终返回单个Web 元素。
同样在许多情况下,您在已经完全加载的页面上应用findElement和方法。findElements在这种情况下findElements,将为您返回与传递的定位器匹配的所有Web 元素的列表。
但是,为了在加载页面中获取所有匹配元素,您不能有效地使用findElements式等待。应该使用实现显式等待的
预期条件。
如果您知道与该页面上显示的传递定位器匹配的元素的确切数量,您可以使用此方法:

wait.until(ExpectedConditions.numberOfElementsToBe(element, expectedElementsAmount))

如果你知道它应该至少是一些已知数量的元素,你可以使用这个方法:

wait.until(ExpectedConditions.numberOfElementsToBeMoreThan(element, expectedElementsAmount))
于 2021-12-08T21:11:09.920 回答
-1

相反,您需要在整个上下文中阅读该行。

  • findElements():使用给定机制查找当前页面中的所有元素。此方法受执行时有效的“隐式等待”时间的影响。隐式等待时,一旦找到集合中的项超过 0 个,此方法将立即返回,或者如果达到超时将返回一个空列表。

在这里,多于 0 个项目意味着大于 0n > 0但肯定会找到当前页面中的所有元素,直到达到超时。

于 2021-12-08T21:10:24.953 回答