我正在尝试使用 Selenium 自动化我的一些测试,但我遇到了这个 painInTheA... 问题。流程是这样的:
- 从下拉列表中选择选项
- 点击下拉菜单正下方的搜索按钮(它位于下拉菜单的“后面” 当它展开时)
不幸的是,Selenium 比动画快。它会选择该选项,并在它仍在展开的列表下方时尝试单击搜索按钮(不过,它目前正在折叠)。
目前我使用讨厌的 hack,即在点击前等待 1 秒。
是否有任何方法可以确定下拉菜单是否已折叠以便我们能够毫无问题地单击按钮?
下拉菜单的 HTML 代码如下:
<select data-bind="value: SearchCriteriaContacts.IsActive, options: YesNo, optionsText: 'ItemValue', optionsValue: 'ItemId', optionsCaption: $root.AnyText">
<option value="">--- Any ---</option>
<option value="">Yes</option>
<option value="">No</option>
</select>
最佳答案
您可以使用显式等待来等待按钮可见
C# code
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
wait.Until(ExpectedConditions.ElementIsVisible(By locator, string searchButtonLocator)).Click();
这将等待最多 15 秒以使按钮可见。
有关更多 ExpectedConditions,请查看 here
关于c# - 如何确定下拉列表是否折叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34607901/