我需要使用 WebDriverWait 找到 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
关于selenium - wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName(className)) 不返回任何元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39575177/