【问题标题】:How to invoke Click using HTML AGILITY PACK如何使用 HTML AGILITY PACK 调用 Click
【发布时间】:2017-09-25 08:12:03
【问题描述】:

WebBrowser(WEBFORMS) 中,我们可以在解析 HTML 时使用 InvokeMember("click")。 我们如何使用 HTML AGILITY PACK 来做到这一点。

<a id="ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2" href="javascript:;//ctl0_CONTENU_PAGE_resultSearch_PagerTop_ctl2">

当我们在 Href 中有一个 javascript 时,我如何使用 HTTP REQUEST。

【问题讨论】:

    标签: javascript c# html asp.net html-agility-pack


    【解决方案1】:

    HtmlAgilityPack 仅用于解析 HTML,不支持调用事件。

    要调用事件,您可以使用 WebClient 发送 HTTP 请求或 Selenium。

    对于 Selenium,您可以在此处查看此答案: https://stackoverflow.com/a/34244583/7827699

    关于如何使用 WebClient 发送 Http 请求: https://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.110).aspx

    【讨论】:

    • 我不需要验证我只需转到下一页。
    • 你能告诉更多细节吗?你在使用 WinForms 吗?您所说的“身份验证”是什么意思?如果您只想转到下一页,为什么不简单地使用您拥有的网址进行重定向?
    • 是同一个url(就像一个局部视图);我编辑我的问题; Href 是一个 javaScript 函数,所以我无法获取 url。 HTML: 当我点击 html 表格时,它的值发生了变化,但我们停留在同一页面。
    • 所以基本上你是在尝试从服务器端调用一个 JavaScript 函数,对吧?
    • 如果您尝试使用 webbrowser activex 控件,您究竟遇到了什么问题?
    【解决方案2】:

    没有 htmlagiliypack 不是 html 渲染引擎,您不能调用点击事件。是just a parsing tool
    如果需要,请使用 Webbrowserselenium webdriver

    【讨论】:

    • 我不需要身份验证,我只需转到下一页。对于 WebBrowser 它是 WinForm 不能在 ASP.net MVC 中使用它
    • 网络浏览器只是一个activex,在windows中的许多应用程序中都有使用,所以你可以在任何你想要的html页面上使用它
    • 这是我尝试使用 Webbrowser 时的错误:无法实例化 ActiveX 控件 '8856f961-340a-11d0-a96b-00c04fd705a2' 因为当前线程不是单线程单元 (STA) 线程.
    • 尝试重现问题并发布您的代码是获得解决方案的最佳方式
    • 我在这里转贴了问题WebBrowser in ASP.net
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2011-06-04
    • 2014-07-13
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多