等。直到(ExpectConditions.VisibilityOfAllElementsLocationBy(By.ClassName(className))不返回任何元素



我需要找到IReadOnlyCollection使用WebDriverWait来确保元素已经在页面上呈现。

这是我的代码

 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

最新更新