【问题标题】:NHtmlUnit cannot submit buttonNHtmlUnit 无法提交按钮
【发布时间】:2014-01-03 09:07:39
【问题描述】:

我正在发现关于 NHtmlUnit 来构建应用程序网络。但是当我尝试使用自动登录到雅虎邮件时。但是在我运行代码之后。我刷新了雅虎的登录页面,所以没有任何改变。没有记录。

代码:

        NHtmlUnit.WebClient driver = new NHtmlUnit.WebClient();

        driver.Options.JavaScriptEnabled = true;
        driver.Options.ThrowExceptionOnScriptError = false;
        driver.Options.ActiveXNative = true;
        driver.Options.CssEnabled = true;

        HtmlPage page = driver.GetHtmlPage("https://login.yahoo.com/config/login?");

        HtmlForm form = page.GetFormByName("login_form");
        HtmlTextInput user = (HtmlTextInput)form.GetInputByName("login");
        HtmlPasswordInput pass = (HtmlPasswordInput)form.GetInputByName("passwd");

        user.SetValueAttribute("my account");
        pass.SetValueAttribute("my pass");

        HtmlSubmitInput submitButton = (HtmlSubmitInput)page.GetElementByName(".save");

        HtmlPage nextpage = (HtmlPage)submitButton.Click();

请帮我解释原因。我在 .NET MVC 4 C# 上编写它。非常感谢。

【问题讨论】:

    标签: submit nhtmlunit


    【解决方案1】:

    仅在单行以下更新,因此您可能会遇到类转换异常

    HtmlButton submitButton = (HtmlButton)page.GetElementByName(".save");
    

    【讨论】:

    • 感谢您的回答,我关注了您,但运行代码后没有任何变化,我在浏览器上打开新标签并输入链接 Mail.yahoo.com 它仍然没有记录。
    • 对不起,我听不懂。你的意思是用上面的代码你不能登录?
    • 是的,兄弟。我想构建一个用于自动登录或提交注册表单的工具。并且上面的代码无法登录。
    • @user3156500 您现在面临什么问题?在你面临类转换异常之前
    【解决方案2】:

    代码完全没问题,应该可以工作。

    可能你认为不是的原因是你检查的方法不对! 使网站(即 login.yahoo.com)将您视为已登录用户的一个基本要素是,当您使用登录表单时,它向您的浏览器/网络驱动程序提供 cookie,因此,如果您通过 @ 的实例使用登录过程987654321@(即driver)那么您只能在driver Web 客户端中登录,而不是在任何其他浏览器或客户端中登录,即使在同一台机器上也是如此。

    我尝试将此添加为评论,但我没有足够的声誉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 2018-01-29
      • 1970-01-01
      相关资源
      最近更新 更多