Come posso fare clic su una casella di controllo usando HtmlAgilityPack

c# html-agility-pack

Domanda

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>

Sto cercando di fare clic sulla prima casella di controllo che dice "Seleziona tutto" in modo che tutte le altre caselle di controllo qui sotto siano selezionate.

Penso che il mio codice C # supponga di caricare HtmlNode ma non riesco a capire come fare clic su di esso.

Qualsiasi suggerimento sarebbe utile.

Risposta accettata

Non penso che tu possa utilizzare HtmlAgilityPack per selezionare una casella di controllo. Sì, è possibile modificare la dom nell'oggetto doc modo che la casella di controllo sia selezionata e impostare DocumentText del controllo webbrowser come htmldocument ma dubito che sia ciò che si desidera fare.

Se hai la pagina aperta nel webBrowser , puoi usare qualcosa di simile a questo:

webBrowser1.Document.GetElementsByTagName("input")[0].InvokeMember("click");

Ma questo selezionerà solo la prima casella di controllo.

Se si desidera selezionare tutte le caselle di controllo, è possibile iterare il codice precedente per tutti gli elementi di input o utilizzare javascript lato server per selezionare tutte le caselle di controllo quando viene selezionata la prima casella di controllo.

Ancora una volta, posso aiutarti ulteriormente se spieghi cosa vuoi un po 'più chiaramente.



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché