繁体   English   中英

单击后HTMLUnit不重定向

[英]Htmlunit is not redirecting after click

我正在使用net.sourceforge.htmlunit htmlunit模拟网络浏览器。 我尝试登录Steam Web应用程序,但遇到了问题。 设置凭据后,我想使用click方法:

final WebClient webClient = new WebClient();
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setRedirectEnabled(true);
webClient.setCookieManager(new CookieManager());

final HtmlPage loginPage = webClient.getPage(loginPageConfiguration.getLoginPageUrl());
final HtmlTextInput user = loginPage.getHtmlElementById(loginPageConfiguration.getLoginInputId());
user.setText(loginCredentials.getUsername());
final HtmlPasswordInput password = loginPage.getHtmlElementById(loginPageConfiguration.getPasswordInputId());
password.setText(loginCredentials.getPassword());
final HtmlPage afterLoginPage = loginPage.getHtmlElementById(loginPageConfiguration.getLoginButtonId()).click();

在正常浏览器中,成功登录后,它会重定向到http://store.steampowered.com/afterLoginPage仍在上一个登录页面中。

在不知道页面和没有访问凭证的情况下,我只能猜测。 也许该应用程序是一个单页应用程序,它使用ajax替换了可视内容(可能与重定向结合使用)。 因为ajax是异步的,所以它可能有助于在单击之后和寻址页面之前稍等一下。

通过检查真实浏览器的http通信(通过使用开发人员工具或使用Web代理(如Charles))来了解发生了什么也是一个很好的起点。 然后,您可以将其与HtmlUnit进行的通信进行比较(例如,启用HttpClient连线日志)。

另一个选项可能是javascript错误。 请检查您的日志输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM