我一直在寻找这个问题的解决方案,但还没有找到一个有效的解决方案。我有一个webBrowser控件。有一个多个下拉列表,其结构如下:
<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>
已经选择了一些选项。我需要选择另一个选项,例如“Volvo” 典型的做法是按住ctrl键并右键单击该选项。我正在看sendKeys课程,但我并不完全确定我做得对。 这是我尝试过的:
foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("option"))
{
if (item.InnerText == "Volvo")
{
item.Focus();
SendKeys.Send("^(+)");//sends ctrl-space
}
}
它似乎没有给予项目焦点,所以我不确定SendKeys是否正常工作。
我也试过这个:
foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("option"))
{
if (item.InnerText == "Volvo")
{
item.SetAttribute("SELECTED", "");
}
}
......但这似乎也不起作用。
任何帮助表示赞赏
答案 0 :(得分:0)
好吧,我很尴尬地说答案非常简单......
显然,SetAttribute方法不会将空字符串作为第二个参数。这是有效的解决方案:
foreach (HtmlElement item in webBrowser1.Document.GetElementsByTagName("option"))
{
if (item.InnerText == "Volvo")
{
item.SetAttribute("SELECTED", "SELECTED");
}
}