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>
我正在尝试点击第一个显示“全选”的复选框,以便选中下面的所有其他复选框。
我认为我的C#代码假设加载HtmlNode但我无法弄清楚如何点击它。
任何建议都会有所帮助。
答案 0 :(得分:1)
我认为您不能使用HtmlAgilityPack来检查复选框。是的,您可以更改doc
对象中的dom,以便选中复选框并将webbrowser控件的DocumentText
设置为您的htmldocument,但我怀疑这是您想要做的。
如果您在webBrowser
中打开了该页面,则可以使用以下内容:
webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");
但这只会选择第一个复选框。
如果您想要选中所有复选框,您可以为所有输入元素迭代上述代码,或者在选中第一个复选框时使用服务器端javascript检查所有复选框。
同样,如果你能更清楚地解释一下你想要什么,我可以帮助你。