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をロードすると仮定していると思うが、私はそれをクリックする方法を見つけることができません。
どんな提案も役に立ちます。
私はHtmlAgilityPackを使ってチェックボックスをチェックすることはできないと思います。はい、 doc
オブジェクト内のdomを変更して、チェックボックスをオンにして、WebブラウザコントロールのDocumentText
をhtmldocumentとして設定することができますが、それはあなたがしたいことではないでしょうか。
webBrowser
でページを開いている場合は、次のようなものを使用できます。
webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");
しかし、これは最初のチェックボックスのみを選択します。
すべてのチェックボックスを選択したい場合は、上記のコードをすべての入力要素に対して反復するか、サーバー側のjavascriptを使用して、最初のチェックボックスをオンにするとすべてのチェックボックスをチェックします。
もう少し明確にしたいことを説明すれば、私はさらにあなたを助けることができます。