如何使用带有隐式等待的 findElements 方法?
How to use findElements method with implicit waiting?
方法文档中写着:
When implicitly waiting, this method will return as soon as there are more than 0 items in the found collection, or will return an empty list if the timeout is reached
正如我所见(如果我错了请纠正我),当该方法找到一个元素时它 returns 它而不搜索其他元素。
那么在使用findElement方法的基础上使用这个方法有什么好处呢?
您需要单独阅读该行的整个上下文。
- findElements():
Find all elements within the current page using the given mechanism.
This method is affected by the 'implicit wait' times in force at the
time of execution. When implicitly waiting, this method will return as
soon as there are more than 0 items in the found collection, or will
return an empty list if the timeout is reached.
在这里,超过 0 项 意味着 大于 0 即 n > 0
但肯定会找到当前页面中的所有元素,直到达到超时。
findElements
方法 returns 一个 list 与传递的定位器匹配的网络元素,而 findElement
方法将始终 return 一个单个 网络元素。
同样在许多情况下,您在已经完全加载的页面上应用 findElement
和 findElements
方法。在这种情况下,findElements
将 return 列出 所有 与传递的定位器匹配的网络元素。
但是,为了在加载页面中获得所有匹配元素,您不能有效地使用 findElements
和 隐式等待 .
预期条件 实施显式等待 应该改用。
如果您知道与该页面上显示的传递定位器匹配的元素的确切数量,您可以使用此方法:
wait.until(ExpectedConditions.numberOfElementsToBe(element, expectedElementsAmount))
如果您知道至少应该包含一些已知数量的元素,您可以使用此方法:
wait.until(ExpectedConditions.numberOfElementsToBeMoreThan(element, expectedElementsAmount))
方法文档中写着:
When implicitly waiting, this method will return as soon as there are more than 0 items in the found collection, or will return an empty list if the timeout is reached
正如我所见(如果我错了请纠正我),当该方法找到一个元素时它 returns 它而不搜索其他元素。 那么在使用findElement方法的基础上使用这个方法有什么好处呢?
您需要单独阅读该行的整个上下文。
- findElements(): Find all elements within the current page using the given mechanism. This method is affected by the 'implicit wait' times in force at the time of execution. When implicitly waiting, this method will return as soon as there are more than 0 items in the found collection, or will return an empty list if the timeout is reached.
在这里,超过 0 项 意味着 大于 0 即 n > 0
但肯定会找到当前页面中的所有元素,直到达到超时。
findElements
方法 returns 一个 list 与传递的定位器匹配的网络元素,而 findElement
方法将始终 return 一个单个 网络元素。
同样在许多情况下,您在已经完全加载的页面上应用 findElement
和 findElements
方法。在这种情况下,findElements
将 return 列出 所有 与传递的定位器匹配的网络元素。
但是,为了在加载页面中获得所有匹配元素,您不能有效地使用 findElements
和 隐式等待 .
预期条件 实施显式等待 应该改用。
如果您知道与该页面上显示的传递定位器匹配的元素的确切数量,您可以使用此方法:
wait.until(ExpectedConditions.numberOfElementsToBe(element, expectedElementsAmount))
如果您知道至少应该包含一些已知数量的元素,您可以使用此方法:
wait.until(ExpectedConditions.numberOfElementsToBeMoreThan(element, expectedElementsAmount))