2012-10-22 247 views
4

我正在嘗試使用HtmlUnit登錄Facebook頁面並查看其HTML內容。我試圖通過HtmlUnit填寫登錄憑證,但是當點擊提交按鈕時我沒有看到會話正在進行。HtmlUnit會話管理

無法在htmlunit會話管理類上找到很多內容。我也附上了我目前用來嘗試這個問題的代碼。任何幫助感謝!

WebClient webClient = new WebClient(); 
HtmlPage page1 = webClient.getPage("https://www.facebook.com"); 
List<HtmlForm> listF = page1.getForms(); 
HtmlForm form = null; 
for(int i=0; i<listF.size(); i++) 
{ 
    if(listF.get(i).getId().equals("login_form")) 
    { 
     form = listF.get(i); 
     } 
} 
HtmlTextInput uName = form.getInputByName("email"); 
HtmlPasswordInput passWord = form.getInputByName("pass"); 
HtmlSubmitInput button = form.getInputByValue("Log In"); 
uName.setValueAttribute(FACEBOOK_UNAME); 
passWord.setValueAttribute(FACEBOOK_PASS); 
HtmlPage page2 = button.click(); 

回答

8

找到了答案。在開始獲取網頁之前啓用了Cookie。有用。 添加下面的代碼

WebClient webClient = new WebClient(); 
CookieManager cookieMan = new CookieManager(); 
cookieMan = webClient.getCookieManager(); 
cookieMan.setCookiesEnabled(true); 
+0

它看起來當實例Web客戶端的瀏覽器版本好像你還可以獲得由默認設定的步驟:'WebClient的Web客戶端=新的Web客戶端(BrowserVersion.INTERNET_EXPLORER_11);' – encrest