在c#中使用Selenium从下拉菜单中选择选项

本文关键字:下拉菜单 选择 选项 Selenium | 更新日期: 2023-09-27 17:54:17

我想在下拉菜单中选择一个特定的选项。我当前的代码突出显示了我想要的选择,但是继续前进,并且在"选择"它之后不保留字段中的值。我想获取"医疗"的值目前我使用的是:

IWebElement element = driver.FindElement(By.Name("DISPLAY_CoverageType"));
SelectElement selector = new SelectElement(element);
selector.SelectByText("Medical");

我正在拉的列表看起来像:

<option value="">Please Select One</option>
<option value="Medical">Medical</option>
<option value="Hospital">Hospital</option>
<option value="Dental">Dental</option>
<option value="Vision">Vision</option>

这将以蓝色突出显示我的选择,但在下拉菜单关闭时不会保持选中状态。任何建议吗?

在c#中使用Selenium从下拉菜单中选择选项

您也可以使用css选择器绕过SelectElement类,直接找到该选项。

string option = "Medical";
By css = By.CssSelector("Select>option[value='" + option + "']");
driver.FindElement(css).Click();

使用

 selector.selectByValue("Medical"); 

代替

 selector.SelectByText("Medical");

显然走重复和"简单"的路线是正确的。这段代码帮助我通过了测试:

driver.FindElement(By.Name("DISPLAY_CoverageType")).Click();
driver.FindElement(By.XPath("//td[4]/select/option[3]")).Click();
driver.FindElement(By.XPath("//td[4]/select/option[3]")).Click();

感谢@alecxe提供了重复调用的想法。