HtmlUnit会话管理

问题描述 投票:5回答:2

我正在尝试使用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();
htmlunit sessionid
2个回答
9
投票

找到了答案。刚开始获取网页之前启用了Cookie。有用。添加了下面的代码

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

0
投票

另一个建议是,如果您尝试在HtmlUnit中恢复HTTP会话,而不是使用webClient.getCookieManager().addCookie(cookie);,请改用:

webClient.addCookie("cookieName=cookieValue", URL, null);
© www.soinside.com 2019 - 2024. All rights reserved.