C#WebBrowser选择单选按钮
本文关键字:单选按钮 选择 C#WebBrowser | 更新日期: 2023-09-27 18:27:37
我在C#中遇到问题。我试图点击并选择网站上的单选按钮,但我不知道如何使其工作。
这是我网站上的HTML:
<tr class="trwc">
<td id="row1" class="SelectBoxRow" >
<input style="display:none;" type="radio" name="valg" value="1" />
<strong>Option1</strong>
</td>
</tr>
<tr class="trwc">
<td id="row2" class="SelectBoxRow" >
<input style="display:none;" type="radio" name="valg" value="2" />
Option2
</td>
</tr>
<tr class="trwc">
<td id="row3" class="SelectBoxRow" >
<input style="display:none;" type="radio" name="valg" value="3" />
Option3
</td>
</tr>
我希望我的代码单击/选择值为3的收音机。
我尝试过,但没有成功:
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("valg")[0].InvokeMember("click");
在尝试之前,我可以判断出代码不起作用,但我不知道如何使其正常工作。
您的代码可以工作,但在HTML中有
style="display:none"
用于单选按钮,因此无法单击它们。
此外,如果您想选择带有value = 3
的代码,您必须将代码更改为
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("valg")[2].InvokeMember("click")
因此索引指向第三个单选按钮。
或者,如果你不确定值3无线电的索引,或者它可能会改变,你可以这样做:
foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("valg"))
{
if (el.GetAttribute("value") == "3")
{
el.InvokeMember("click");
}
}
或使用LINQ
webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("valg").OfType<HtmlElement>().First(el => el.GetAttribute("value") == "3").InvokeMember("click");