【问题标题】:HtmlUnit - button click() does not provide any responseHtmlUnit - 按钮 click() 不提供任何响应
【发布时间】:2017-07-19 23:28:21
【问题描述】:

我在通过 HtmlUnit 方法登录特定网站时遇到问题。 站点表单的提交按钮如下所示:

<td>
    <input type="button" value="Login!" onclick="encPass(UTM_STUDIO_ADMIN);" class="normalButton">
</td>

我的代码sn-p:

final HtmlButtonInput submitLogin = form.getInputByValue("Login!");

HtmlPage returnPage = submitLogin.click();
System.out.println(returnPage.asText());

然而,它会打印出填写了用户名和密码字段的日志站点,仅此而已。

WebClient 配置:

wclient.getOptions().setPrintContentOnFailingStatusCode(false);
wclient.getOptions().setCssEnabled(false);
wclient.getOptions().setThrowExceptionOnFailingStatusCode(false);
wclient.getOptions().setThrowExceptionOnScriptError(false);
wclient.getOptions().setUseInsecureSSL(true);
wclient.getOptions().setJavaScriptEnabled(false);

我已经尝试通过我自己添加的按钮登录,并尝试了等待、启用 JS、重定向等的想法,但我是该主题的新手,因此不能保证我可以取消选中任何想法已经试过了。 将不胜感激任何帮助。提前致谢!

【问题讨论】:

    标签: java html login htmlunit htmlbutton


    【解决方案1】:

    您的按钮是按钮类型(不是提交)。在这种情况下,浏览器只呈现一个按钮,但应用程序开发人员负责在用户单击该按钮时执行某些操作。在您的情况下,该按钮将触发一些 javascript。

    但是你已经通过

    禁用了 Javscript
    wclient.getOptions().setJavaScriptEnabled(false);
    

    如果您启用 javascript,也许您的问题就会消失。

    一般来说,当遇到任何问题时,最好从默认设置开始。默认设置以尽可能接近真实浏览器的方式设置。

    【讨论】:

    • &lt;button&gt; 是 Button,但 &lt;input type="button"&gt; 是 HtmlButtonInput
    • ButtonInput 仍然是可点击的(在不同的情况下检查)。启用 JS 在任何情况下都没有帮助,甚至使情况变得更糟,因为它在一些丢失/错误的网站代码方面存在巨大问题。
    猜你喜欢
    • 1970-01-01
    • 2016-11-28
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多