c#在WebBrowser控件的多个下拉列表中选择单个项目
我一直在寻找解决这个问题的方法,但还没有找到一个有效的方法。我有一个网络浏览器控件。有一个多下拉列表,其结构如下:c#在WebBrowser控件的多个下拉列表中选择单个项目,c#,drop-down-menu,webbrowser-control,multipleselection,C#,Drop Down Menu,Webbrowser Control,Multipleselection,我一直在寻找解决这个问题的方法,但还没有找到一个有效的方法。我有一个网络浏览器控件。有一个多下拉列表,其结构如下: <select name="cars" multiple> <option value="volvo">Volvo</option> <option value="saab" SELECTED>Saab</option> <option value="opel">Opel</option>
<select name="cars" multiple>
<option value="volvo">Volvo</option>
<option value="saab" SELECTED>Saab</option>
<option value="opel">Opel</option>
<option value="audi" SELECTED>Audi</option>
</select>
<p>Hold down the Ctrl (windows) / Command (Mac) button to select multiple options.</p>
它似乎没有提供项目的焦点,因此我不确定SendKeys是否工作
我也试过:
foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("option"))
{
if (item.InnerText == "Volvo")
{
item.SetAttribute("SELECTED", "");
}
}
…但这似乎也不起作用。非常感谢您的任何帮助好吧,我很不好意思说答案出人意料的简单 显然,SetAttribute方法不会将空字符串作为第二个参数。这就是有效的解决方案:
foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("option"))
{
if (item.InnerText == "Volvo")
{
item.SetAttribute("SELECTED", "SELECTED");
}
}
更新:这将选择项目,但取消选择流程中的所有其他项目。。。item.Parent.SetAttribute(“值”、“沃尔沃”);
foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("option"))
{
if (item.InnerText == "Volvo")
{
item.SetAttribute("SELECTED", "SELECTED");
}
}