2017-07-19 48 views
0

我遇到通過HtmlUnit方法登錄到特定網站的問題。 網站表單的提交按鈕看起來是這樣的: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,重定向等思想出場,但我的話題新所以它不能保證我可以取消任何已經嘗試過的想法。 希望得到任何幫助。提前致謝!

回答

0

您的按鈕是類型按鈕(未提交)。在這種情況下,瀏覽器只渲染一個按鈕,但如果用戶單擊該按鈕,應用程序開發人員將負責執行某些操作。在你的情況下,該按鈕將觸發一些JavaScript。

但是你必須禁用Javscript通過

wclient.getOptions().setJavaScriptEnabled(false); 

也許你的問題解決了,如果你啓用JavaScript。

通常,在面對任何問題時,以默認設置開始是個不錯的主意。默認設置的方式儘可能接近真實的瀏覽器。

+0

'

+0

ButtonInput仍然是可點擊的(在不同情況下選中)。啓用JS在任何情況下都無濟於事,甚至使它變得更糟,因爲它對一些丟失/錯誤的站點代碼有很大的問題。 – Canert