Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用HtmlAlityPack自动单击按钮_.net - Fatal编程技术网

.net 使用HtmlAlityPack自动单击按钮

.net 使用HtmlAlityPack自动单击按钮,.net,.net,我想自动单击网页上的按钮。我正在使用HtmlAgilityPack。我可以用按钮的Xpath。但我无法触发按钮的单击事件。我该怎么做?请提供帮助。Html Agility Pack不应用于模拟点击按钮。它仅用于解析HTML。如果要发送HTTP请求,可以使用。查看以下答案: 他正在创建一个HtmleElement对象(通过xPath或任何其他方式),然后使用以下代码“调用”click事件: htmlItem.InvokeMember("click"); 我尝试了使用HAP,但没有找到点击输入按钮

我想自动单击网页上的按钮。我正在使用
HtmlAgilityPack
。我可以用按钮的Xpath。但我无法触发按钮的单击事件。我该怎么做?请提供帮助。

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

查看以下答案:

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

htmlItem.InvokeMember("click");

我尝试了使用HAP,但没有找到点击输入按钮的解决方案。 我使用了simplebrowser,它像魔术一样工作来实现这一点


一个有点慢的选项,但它可以工作:

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

这可以改进,但可以使用两种不同的方法来实现相同的目标。

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