0

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

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

我的代码片段:

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

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

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

Web客户端配置:

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、重定向等的想法,但我是该主题的新手,因此不能保证我可以取消选中已经尝试过的任何想法。将不胜感激任何帮助。提前致谢!

4

1 回答 1

0

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

但是您已通过以下方式禁用了 Javscript

wclient.getOptions().setJavaScriptEnabled(false);

如果您启用 javascript,您的问题可能会消失。

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

于 2017-07-20T06:43:16.990 回答