2012-10-22 195 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