ExpectedConditions.presenceOfAllElementsLocatedBy(locator)
webDriver如何知道定位器要定位多少个元素?
答案 0 :(得分:0)
presenceOfAllElementsLocatedBy
将检查至少一个元素的存在,然后将返回与提供的定位符匹配的所有元素。
这是方法实现的官方文档。
期望检查是否存在至少一个元素 在网页上。
定位器用于查找元素
找到WebElement后返回它们的列表
答案 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;
}
};
}
答案 2 :(得分:0)
关键点::使用给定的By机制查找当前页面中的所有元素 借助定位器值在文档中定位元素。
隐式等待时,一旦找到的集合中有0个以上的项目,此方法将立即返回;如果超时,则将返回一个空列表。