如何确定下拉列表是否已折叠?

时间:2016-01-05 09:12:56

标签: c# html css unit-testing selenium

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

  1. 从下拉列表中选择选项
  2. 点击下拉列表下方的搜索按钮(它位于下拉列表后面) 当它扩大时)
  3. 不幸的是,Selenium比动画更快。它选择该选项并尝试在搜索按钮仍处于展开列表下时单击搜索按钮(此时,它正在折叠)。

    目前我使用讨厌的黑客,等待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>
    

1 个答案:

答案 0 :(得分:1)

您可以使用显式等待来等待按钮

  

C#代码

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
wait.Until(ExpectedConditions.ElementIsVisible(By locator, string searchButtonLocator)).Click();

这将等待最多15秒才能看到按钮。

有关更多预期条件,请查看here