簡體   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