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>
Ich versuche, auf das erste Kontrollkästchen mit der Beschriftung "Alle auswählen" zu klicken, damit alle anderen Kontrollkästchen aktiviert sind.
Ich denke, dass mein C # Code den HtmlNode lädt, aber ich kann nicht herausfinden, wie man darauf klickt.
Irgendwelche Vorschläge wären hilfreich.
Ich glaube nicht, dass Sie mit HtmlAgilityPack ein Kontrollkästchen aktivieren können. Ja, Sie können das Dom in Ihrem doc
Objekt ändern, so dass das Kontrollkästchen aktiviert ist und den DocumentText
des Webbrowser-Steuerelements als Ihr HTM- DocumentText
festlegen, aber ich bezweifle, dass Sie das tun möchten.
Wenn Sie die Seite im webBrowser
geöffnet webBrowser
, können Sie webBrowser
verwenden:
webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");
Aber dies wird nur das erste Kontrollkästchen auswählen.
Wenn Sie alle Kontrollkästchen aktivieren möchten, können Sie den obigen Code für alle Eingabeelemente entweder iterieren oder serverseitig Javascript verwenden, um alle Kontrollkästchen zu aktivieren, wenn das erste Kontrollkästchen aktiviert ist.
Auch hier kann ich Ihnen weiterhelfen, wenn Sie etwas genauer erklären, was Sie wollen.