Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Selenium从C中的下拉菜单中选择选项_C#_Html_Selenium - Fatal编程技术网

C# 使用Selenium从C中的下拉菜单中选择选项

C# 使用Selenium从C中的下拉菜单中选择选项,c#,html,selenium,C#,Html,Selenium,我试图在下拉菜单中选择一个特定选项。我的当前代码突出显示了我想要的选择,但会继续,并且在选择后不会将值保留在字段中。我想抓住医学的价值。目前我正在使用: IWebElement element = driver.FindElement(By.Name("DISPLAY_CoverageType")); SelectElement selector = new SelectElement(element); selector.SelectByText("Medical"); 我从中提取的列表如下

我试图在下拉菜单中选择一个特定选项。我的当前代码突出显示了我想要的选择,但会继续,并且在选择后不会将值保留在字段中。我想抓住医学的价值。目前我正在使用:

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>

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

您也可以使用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提供了重复调用的想法。

只是一个粗略的猜测,如果您要发布该元素会怎么样。单击;在选择选项之前?另一个猜测:call selector.SelectByTextMedical;连续两次。@Alexe谢谢你!事实上,我已经试过这两种方法了。我会尝试一下,然后再给你回复!这似乎给了我与使用Select元素类相同的结果。谢谢你的回复!这是一个公共网站,我们可以复制这个问题吗?似乎没有什么区别,这两种情况都没有得到我想要的结果:/