Pol*_* F. 4 selenium webdriver selenium-chromedriver selenium-webdriver
我需要使用WebDriverWait找到IReadOnlyCollection<IWebElement>以确保元素已呈现在页面上。
这是我的代码
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeout));
return wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("TextInput")));
Run Code Online (Sandbox Code Playgroud)
此代码超时失败。这意味着在给定类名的页面上找不到任何元素。我在原始代码之前添加了这行代码只是为了确保元素存在
var allInputs1 = container.FindElements(By.ClassName("textInput"));
Run Code Online (Sandbox Code Playgroud)
该行按预期返回元素。
所以我的结论是
wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.ClassName("TextInput")))
它没有按预期工作,因为它无法找到页面上肯定存在的元素。
使用WebDriverWait查找元素数组的最佳方法是什么?
你的结论是错误的。与FindElements
您一起确保元素存在。
状态的 API 文档VisibilityOfAllElementsLocatedBy
:
期望检查网页上与定位器匹配的所有元素是否可见。可见性意味着元素不仅被显示,而且具有大于 0 的高度和宽度。
而且显然现在是不可见的。
我觉得你应该试试 ExpectedConditions.PresenceOfAllElementsLocatedBy
归档时间: |
|
查看次数: |
5707 次 |
最近记录: |