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");
    }
}