使用HtmlAgilityPack自动单击按钮

时间:2011-07-03 16:00:15

标签: .net

我想自动点击网页上的按钮。我正在使用HtmlAgilityPack。我可以按下按钮的Xpath。但我无法触发按钮的click事件。我怎样才能做到这一点?请帮忙。

4 个答案:

答案 0 :(得分:7)

Html Agility Pack不应该用于模拟按钮上的点击。它仅用于解析HTML。如果您要发送HTTP请求,可以使用WebClient

答案 1 :(得分:3)

查看以下答案:How to click a link element programmatially with HTMLElement?

他正在创建一个HtmlElement对象(通过xPath或任何其他方式),然后使用代码“调用”click事件:

htmlItem.InvokeMember("click");

答案 2 :(得分:0)

我尝试使用HAP,但无法找到单击输入按钮的解决方案。 我使用了简单的浏览器,它可以像魔术一样实现这一目标。

https://github.com/axefrog/SimpleBrowser

答案 3 :(得分:0)

这个选项有点慢,但是可以用:

HtmlAgilityPack.HtmlNodeCollection ExpanderButtonNodes = Document.DocumentNode.SelectNodes("//div[@class='cd-expand-button']");
   if (ExpanderButtonNodes != null)
      foreach (HtmlAgilityPack.HtmlNode Node in ExpanderButtonNodes)
         foreach (HtmlElement Element in webBrowser1.Document.GetElementsByTagName("div"))
            if (Element.InnerText != null && Node.InnerText.Length > 0 && Element.InnerText.Contains(Node.InnerText))
               Element.InvokeMember("click");

可以对此进行改进,但可以通过两种不同的方式来达到同一目的。