我正在尝试使用Selenium自动化我的一些测试,我有这个painInTheA ...问题。流程是这样的:
不幸的是,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>
答案 0 :(得分:1)
您可以使用显式等待来等待按钮
C#代码
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
wait.Until(ExpectedConditions.ElementIsVisible(By locator, string searchButtonLocator)).Click();
这将等待最多15秒才能看到按钮。
有关更多预期条件,请查看here