如何使用 HtmlAgilityPack 单击复选框
How can I click a checkbox using HtmlAgilityPack
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(webBrowser.DocumentText);
HtmlNode n = doc.DocumentNode.SelectSingleNode("//*[contains(@class, 'checkbox')]");
<table class="list" cellspacing="0">
<tbody>
<tr>
<th width="45" class="checkAll"><input title="Select all" class="checkbox" type="checkbox" value=""></th>
<th><span>Account</span></th>
<th><span>Target system</span></th>
</tr>
<tr class="checkable">
<td><input name="item1" class="checkbox" type="checkbox"></td>
<td><span>sometext1</span></td>
<td><span>system1</span></td>
</tr>
<tr class="checkable odd">
<td><input name="item2" class="checkbox" type="checkbox"></td>
<td><span>sometext2</span></td>
<td><span>stystem2</span></td>
</tr>
<tr class="foot">
<td colspan="4"><input name="SUBMIT" class="submit" type="submit" value="Unlock"></td>
</tr>
</tbody>
</table>
我正在尝试单击第一个显示 "Select all" 的复选框,以便选中下面的所有其他复选框。
我认为我的 C# 代码应该加载 HtmlNode,但我不知道如何单击它。
任何建议都会有所帮助。
我认为您不能使用 HtmlAgilityPack 来选中复选框。是的,您可以更改 doc
对象中的 dom,以便选中该复选框并将网络浏览器控件的 DocumentText
设置为您的 htmldocument,但我怀疑这就是您想要做的。
如果您在 webBrowser
中打开了页面,您可以使用如下内容:
webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");
但这只会 select 第一个复选框。
如果您想要 select 编辑所有复选框,您可以对所有输入元素重复上述代码,或者在选中第一个复选框时使用服务器端 javascript 来选中所有复选框。
再一次,如果你能更清楚地解释你想要什么,我可以进一步帮助你。
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(webBrowser.DocumentText);
HtmlNode n = doc.DocumentNode.SelectSingleNode("//*[contains(@class, 'checkbox')]");
<table class="list" cellspacing="0">
<tbody>
<tr>
<th width="45" class="checkAll"><input title="Select all" class="checkbox" type="checkbox" value=""></th>
<th><span>Account</span></th>
<th><span>Target system</span></th>
</tr>
<tr class="checkable">
<td><input name="item1" class="checkbox" type="checkbox"></td>
<td><span>sometext1</span></td>
<td><span>system1</span></td>
</tr>
<tr class="checkable odd">
<td><input name="item2" class="checkbox" type="checkbox"></td>
<td><span>sometext2</span></td>
<td><span>stystem2</span></td>
</tr>
<tr class="foot">
<td colspan="4"><input name="SUBMIT" class="submit" type="submit" value="Unlock"></td>
</tr>
</tbody>
</table>
我正在尝试单击第一个显示 "Select all" 的复选框,以便选中下面的所有其他复选框。
我认为我的 C# 代码应该加载 HtmlNode,但我不知道如何单击它。
任何建议都会有所帮助。
我认为您不能使用 HtmlAgilityPack 来选中复选框。是的,您可以更改 doc
对象中的 dom,以便选中该复选框并将网络浏览器控件的 DocumentText
设置为您的 htmldocument,但我怀疑这就是您想要做的。
如果您在 webBrowser
中打开了页面,您可以使用如下内容:
webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");
但这只会 select 第一个复选框。
如果您想要 select 编辑所有复选框,您可以对所有输入元素重复上述代码,或者在选中第一个复选框时使用服务器端 javascript 来选中所有复选框。
再一次,如果你能更清楚地解释你想要什么,我可以进一步帮助你。