使用HtmlAgilityPack自动点击按钮

5

我想要自动点击网页上一个按钮。我正在使用HtmlAgilityPack。我可以获取到按钮的Xpath,但是我无法触发按钮的点击事件。请问我该怎么做?请帮忙。

4个回答

8

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


你能给一个例子吗,我可以用什么方法模拟自动点击? - julia
如果我正确理解Darin的话,您可以使用WebClient类来模拟按钮点击,因为按钮点击会导致数据打包,然后使用包含JSON或其他格式的相关数据执行POST。 - Kevin Meredith
但是如果目标网站检查主机URL或验证请求是否来自同一域,则webClient方法可能会失败。 - panky sharma

3

2

1

一种有点慢但可行的选项:

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");

这个可以改进,但是提供了两种不同的方法来达到相同的目的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接