C# C Selenium-下拉菜单/组合框

C# C Selenium-下拉菜单/组合框,c#,html,css,selenium,xpath,C#,Html,Css,Selenium,Xpath,从自定义下拉菜单中选择时遇到问题。。我使用XPath、CssSelector和Id尝试了这两种方法 我在此处添加了代码链接: 我想我必须访问div class=SelectBox才能访问id='ctl00\U ctl00\U MP\U Blank\U Body\U MP\U Base\U Body\U MP\U TOPSIDE菜单\U Body\U ctl00\U CBOBE处理样式' 但我总是出错 这是我目前正在尝试的,但没有任何运气: IWebElement test = driver.Fi

从自定义下拉菜单中选择时遇到问题。。我使用XPath、CssSelector和Id尝试了这两种方法

我在此处添加了代码链接:

我想我必须访问div class=SelectBox才能访问id='ctl00\U ctl00\U MP\U Blank\U Body\U MP\U Base\U Body\U MP\U TOPSIDE菜单\U Body\U ctl00\U CBOBE处理样式'

但我总是出错

这是我目前正在尝试的,但没有任何运气:

IWebElement test = driver.FindElement(By.XPath("//div[@class='input']//div[@id='ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype']"));
有人能告诉我如何访问下拉列表中的项目吗

谢谢

试试这个

var select = driver.FindElementById("ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype");

var stringValues = select.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None);

((IJavaScriptExecutor)driver).ExecuteScript("var select = arguments[0]; for(var i = 0; i < select.options.length; i++){ if(select.options[i].text == arguments[1]){ select.options[i].selected = true; } }", select, stringValues[0]);

您需要使用SelectElement而不是IWebElement

SelectElement mySelect = new SelectElement(yourDriver.FindElement(By.Id("ctl00_ctl00_ctl00_MP_Blank_Body_MP_Base_Body_MP_TopSideMenu_Body_ctl00_cboBehandlingstype")));

mySelect.SelectByText("510111 Normalbehandling");

发布您试图使用的元素的html。请阅读,特别是关于MCVE的部分,这将帮助您调试自己的程序并自行解决问题。如果您这样做了,但仍然卡住了,您可以回来发布您的MCVE,您尝试了什么,以及执行结果,包括任何错误消息,以便我们可以更好地帮助您。同时提供一个指向页面和/或相关HTML的链接。请阅读原因。粘贴代码并正确格式化。它不会给我任何错误,但不会从列表中选择任何内容: