我正在尝试使用HtmlUnit登录Facebook页面并查看其HTML内容。我正在尝试通过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();
答案 0 :(得分:9)
找到答案。刚开始获取网页之前启用了Cookie。有用。 添加了以下代码
WebClient webClient = new WebClient();
CookieManager cookieMan = new CookieManager();
cookieMan = webClient.getCookieManager();
cookieMan.setCookiesEnabled(true);
答案 1 :(得分:0)
另一个建议是,如果您尝试在HtmlUnit中还原HTTP会话,而不是使用webClient.getCookieManager().addCookie(cookie);
,请改用它:
webClient.addCookie("cookieName=cookieValue", URL, null);