c# - 如何使用硒等到下拉选择的选项更改?
问题描述
有时,基于页面上的其他一些操作,下拉所选项目会自动更改而无需重新加载页面(此下拉列表每次都有相同的选项数)。我们如何等到使用 selenium webdriver C# 更改下拉所选项目?
<select name="ddlFruit_N" id="ddlFruit_N" class="Searchddl" style="text-decoration: none; width: 152px; height: 22px;">
<option value="">Select</option>
<option value="447">Grapes</option>
<option value="448">Mango</option>
<option selected="selected" value="449">Apple</option>
</select>
解决方案
请尝试以下代码以等待更改的下拉选项。
public static SelectElement FindSelectElementWhenPopulated(IWebDriver driver, By by, int delayInSeconds, string optionText)
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(delayInSeconds));
return wait.Until<SelectElement>(drv =>
{
SelectElement element = new SelectElement(drv.FindElement(by));
if (element.SelectedOption.ToString().Contains(optionText))
{
return element;
}
return null;
}
);
}
我这样称呼它以等待更改的下拉选项“橙色”</p>
Myclass.FindSelectElementWhenPopulated(driver, By.CssSelector("#ddlFruit_N"), 20, "Orange");
推荐阅读
- android - getContentResolver() 给出未知 URL
- android - Android Studio:如何自动切换开关?
- vb.net - 按全名 VB.net 对 ZipArchive 进行排序
- matlab - Matlab中的迭代
- r - 如何根据条件向数据框添加行
- python - 如何在 MacOS 上将 GPU 与 Keras 一起使用
- python-3.x - TypeError: 不支持解码 str TypeError: 不支持解码 str
- node.js - express.js/mongo 的 Eslint 配置
- javascript - 茉莉花单元测试在服务中具有数据的组件,该服务从角度 2+ 中的其他服务获取数据
- javascript - 如何通过从 API 中获取对象值来创建数组