【发布时间】:2012-11-19 14:09:32
【问题描述】:
我正在使用 Webbrowser 控件填写一个站点,问题是该站点包含两个下拉列表,并且它们像这样相互链接
<select name="dropdown1" id="dropdown1">
<option value="1"test1</option>
<option value="2"test2</option>
</select>
<select....>
<option value=""> </option>
</select>
如果我使用
Webbrowser1.document.getelementbyid("dropdown1").setattribute("Value", "1")
它确实选择了 dropdownlist1 的值 1,但它不会使用属于第一个下拉列表中的选项的选项激活下拉列表 2
我让它工作的唯一方法是用鼠标选择它并单击我的选项,但我希望它是自动的。我希望我已经充分告知了你。
【问题讨论】:
-
第二个下拉列表没有得到任何 id?或名字?我猜它有一个像dropdown2这样的名字。所以你只需要添加与另一个ID相同的代码。 Webbrowser1.document.getelementbyid("dropdown2").setattribute("Value", "1")
-
@samy 是的,第二个下拉列表也有一个类似 dropdown2 的 id,但如果单击第一个下拉列表,则该列表中只有选项,我无法自动执行此操作。如果你使用你告诉我的代码,它不会起作用,因为没有 value1
-
这是一个猜测!你说只有当你点击第一个下拉列表时才有效。所以你可以像这样调用 click 方法:
Webbrowser1.document.getelementbyid("dropdown1").InvokeMember("click");或尝试Webbrowser1.Document.GetElementById("dropdown1").Focus(); -
非常感谢,您的回答并不完全正确,但它给了我很好的方向。现在我有 (WebBrowser1.Document.GetElementById("dropdown1").SetAttribute("Value", "1") WebBrowser1.Document.GetElementById("dropdown1").Focus() SendKeys.Send("{DOWN}") SendKeys .Send("{Up}") 并且有效:D
标签: c# drop-down-menu browser controls