¿Cómo puedo hacer clic en una casilla de verificación utilizando HtmlAgilityPack?

c# html-agility-pack

Pregunta

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>

Estoy intentando hacer clic en la primera casilla de verificación que dice "Seleccionar todo" para que todas las demás casillas de verificación de abajo estén seleccionadas.

Creo que mi código C # se supone que carga el HtmlNode pero no puedo averiguar cómo hacer clic en él.

Cualquier sugerencia sería útil.

Respuesta aceptada

No creo que puedas usar HtmlAgilityPack para marcar una casilla de verificación. Sí, puede cambiar el dom en su objeto doc para que la casilla de verificación esté marcada y establezca el texto de DocumentText del control del navegador web como su htmldocument pero dudo que eso sea lo que quiere hacer.

Si tiene la página abierta en el webBrowser , puede usar algo como esto:

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

Pero esto solo seleccionará la primera casilla de verificación.

Si desea que se seleccionen todas las casillas de verificación, puede iterar el código anterior para todos los elementos de entrada o usar javascript del lado del servidor para marcar todas las casillas de verificación cuando se marca la primera casilla de verificación.

Nuevamente, puedo ayudarlo más si explica lo que quiere un poco más claramente.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué