HtmlAgilityPack을 사용하여 확인란을 어떻게 클릭 할 수 있습니까?

c# html-agility-pack

문제

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을 변경하여 확인란을 선택하고 웹 브라우저 컨트롤의 DocumentText 를 htmldocument로 설정할 수 있지만 원하는 작업이 아닌지 의심 스럽습니다.

webBrowser 에서 페이지를 열어 놓은 경우 다음과 같이 사용할 수 있습니다.

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

그러나이 옵션은 첫 번째 확인란 만 선택합니다.

모든 확인란을 선택하려면 위의 코드를 모든 입력 요소에 대해 반복하거나 첫 번째 확인란을 선택하면 서버 쪽 JavaScript를 사용하여 모든 확인란을 선택하십시오.

다시 한 번, 당신이 원하는 것을 조금 더 명확하게 설명하면 당신을 도울 수 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.