我需要找到IReadOnlyCollection
这是我的代码
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));
return wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("TextInput")));
此代码超时失败。这意味着在给定类名的页面上找不到任何元素。我在我的原始代码之前添加了这行代码只是为了确保元素存在
var allInputs1 = container.FindElements(By.ClassName("textInput"));
该行返回元素。
所以我的结论是wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("TextInput")))
由于无法找到页面上确定存在的元素,因此无法按预期工作。
使用WebDriverWait查找元素数组的最佳方法是什么?
你的结论是错误的。对于FindElements
,您只需确保元素存在。
VisibilityOfAllElementsLocatedBy
的API文档说明:
检查网页上是否存在所有元素的期望与定位器匹配的都是可见的。可见性意味着元素不仅显示而且还具有高度和宽度,即
显然存在不可见。
我想你应该试试ExpectedConditions.PresenceOfAllElementsLocatedBy