Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Htmlunit在单击后不会重定向_Java_Htmlunit - Fatal编程技术网

Java Htmlunit在单击后不会重定向

Java Htmlunit在单击后不会重定向,java,htmlunit,Java,Htmlunit,我正在使用net.sourceforge.htmlunit中的htmlunit来模拟web浏览器。我尝试登录steam web应用程序,但遇到了问题。设置凭据后,我想使用单击方法: final WebClient webClient = new WebClient(); webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setRedirectEnabled(true); webClient.setC

我正在使用
net.sourceforge.htmlunit
中的
htmlunit
来模拟web浏览器。我尝试登录steam web应用程序,但遇到了问题。设置凭据后,我想使用
单击
方法:

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/
后登录页面仍在上一个登录页面中

在不知道该页面并且没有访问凭据的情况下,我只能猜测。该应用程序可能是一个单页应用程序,它使用ajax(可能与重定向相结合)替换可视内容。因为ajax是异步的,所以在单击之后和寻址页面之前等待一段时间可能会有所帮助

通过检查真实浏览器的http通信(通过使用开发人员工具或使用Charles之类的web代理),了解正在发生的事情也可能是一个很好的起点。您可以将其与HtmlUnit完成的通信进行比较(例如,启用HttpClient wire日志)


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

在不知道页面和拥有访问凭据的情况下,我只能猜测。该应用程序可能是一个单页应用程序,它使用ajax(可能与重定向相结合)替换可视内容。因为ajax是异步的,所以在单击之后和寻址页面之前等待一段时间可能会有所帮助

通过检查真实浏览器的http通信(通过使用开发人员工具或使用Charles之类的web代理),了解正在发生的事情也可能是一个很好的起点。您可以将其与HtmlUnit完成的通信进行比较(例如,启用HttpClient wire日志)


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

https://store.steampowered.com/login
成功完整登录后,应重定向到
http://store.steampowered.com/
我试图在循环中等待,或者添加
waitForBackgroundJavaScript
,但它不起作用。另外
webClient.setAjaxController(新的NicelyResynchronizingAjaxController())@ByeBye:Steam不太可能有安全功能,这会禁用用户界面的自动化。如果我能抽出时间,我会看看。但是页面看起来像是一个真正的挑战……
https://store.steampowered.com/login
成功完整登录后,应重定向到
http://store.steampowered.com/
我试图在循环中等待,或者添加
waitForBackgroundJavaScript
,但它不起作用。另外
webClient.setAjaxController(新的NicelyResynchronizingAjaxController())@ByeBye:Steam不太可能有安全功能,这会禁用用户界面的自动化。如果我能抽出时间,我会看看。但是页面看起来像是一个真正的挑战。。。。