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>
J'essaie de cliquer sur la première case à cocher qui dit "Tout sélectionner" pour que toutes les autres cases ci-dessous soient cochées.
Je pense que mon code C # est supposé charger le HtmlNode mais je ne peux pas comprendre comment cliquer dessus.
Toute suggestion serait utile.
Je ne pense pas que vous puissiez utiliser HtmlAgilityPack pour cocher une case à cocher. Oui, vous pouvez modifier le dom dans votre objet doc
afin que la case à cocher soit cochée et que le paramètre DocumentText
du contrôle Webbrowser soit défini comme votre document htmldocument, mais je doute que vous souhaitiez le faire.
Si la page est ouverte dans le webBrowser
, vous pouvez utiliser quelque chose comme ceci:
webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");
Mais cela ne sélectionnera que la première case à cocher.
Si vous souhaitez que toutes les cases à cocher soient sélectionnées, vous pouvez itérer le code ci-dessus pour tous les éléments en entrée ou utiliser le javascript côté serveur pour cocher toutes les cases à cocher lorsque la première case est cochée.
Encore une fois, je peux vous aider davantage si vous expliquez un peu plus clairement ce que vous voulez.