c# - 如何确定下拉列表是否折叠?

标签 c# html css unit-testing selenium

我正在尝试使用 Selenium 自动化我的一些测试,但我遇到了这个 painInTheA... 问题。流程是这样的:

  1. 从下拉列表中选择选项
  2. 点击下拉菜单正下方的搜索按钮(它位于下拉菜单的“后面” 当它展开时)

不幸的是,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/

相关文章:

css - Firefox - Google 字体,希腊语不适用于 Roboto

c# - 在 C# 中修剪 String 数组的内容

javascript - 如何使 requestAnimationFrame 方法模块化?

javascript - JS中的换行\n问题

javascript - 如何检查 window.localStorage 是否包含任何值

css - 有没有一种简单的方法可以使文本纯色和背景透明

javascript - 触发事件后,如何在 HTML 文件及其对应的 js 和 css 文件之间进行转换?

c# - 限制可以使用打开文件对话框选择的文件

c# - 缓存时间描述的最佳方式

c# - 遗传算法的 "Hello World!"有什么用?