ExpectedConditions.presenceOfAllElementsLocatedBy多少个?

时间:2019-05-07 02:04:54

标签: selenium selenium-webdriver

ExpectedConditions.presenceOfAllElementsLocatedBy(locator)

webDriver如何知道定位器要定位多少个元素?

3 个答案:

答案 0 :(得分:0)

presenceOfAllElementsLocatedBy将检查至少一个元素的存在,然后将返回与提供的定位符匹配的所有元素。

这是方法实现的官方文档。

  

期望检查是否存在至少一个元素       在网页上。

     

定位器用于查找元素

     

找到WebElement后返回它们的列表

这是Java文档的官方链接。 https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#presenceOfAllElementsLocatedBy-org.openqa.selenium.By-

答案 1 :(得分:0)

如果您查看代码,它只会获取与提供的定位器匹配的所有元素。它捕获的唯一内容是StaleElementReferenceException。完整的代码在下面,并带有到源的链接。

/// <summary>
/// An expectation for checking that all elements present on the web page that
/// match the locator.
/// </summary>
/// <param name="locator">The locator used to find the element.</param>
/// <returns>The list of <see cref="IWebElement"/> once it is located.</returns>
public static Func<IWebDriver, ReadOnlyCollection<IWebElement>> PresenceOfAllElementsLocatedBy(By locator)
{
    return (driver) =>
    {
        try
        {
            var elements = driver.FindElements(locator);
            return elements.Any() ? elements : null;
        }
        catch (StaleElementReferenceException)
        {
            return null;
        }
    };
}

https://github.com/DotNetSeleniumTools/DotNetSeleniumExtras/blob/master/src/WaitHelpers/ExpectedConditions.cs

答案 2 :(得分:0)

关键点::使用给定的By机制查找当前页面中的所有元素 借助定位器值在文档中定位元素。

隐式等待时,一旦找到的集合中有0个以上的项目,此方法将立即返回;如果超时,则将返回一个空列表。