HtmlUnit模拟登录知乎失败

z_songlin 2015-03-12 08:55:02
代码如下:

public void login() throws FailingHttpStatusCodeException,
MalformedURLException, IOException
{
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);

// 1.获取某个待测页面
HtmlPage page = webClient.getPage("http://www.zhihu.com/#signin");
// 2.获取页面上的表单
HtmlForm form = page.getForms().get(0);
// 3.获取页面上的各个元素
HtmlTextInput textField = form.getInputByName("email");
HtmlPasswordInput pass = form.getInputByName("password");
HtmlElement button = form.getElementsByTagName("button").get(0);
// 4.给元素赋值
textField.setValueAttribute("843645681@qq.com");
pass.setValueAttribute("imsoly6682270");
// 5.提交
button.click();

System.out.println(page.asText());
}


打印出来的网页还是登录界面。。说明没有登录成功。。
求大神指导。
...全文
430 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_36036953 2019-01-03
  • 打赏
  • 举报
回复
可以removeAttribute("class")试一试
济南大飞哥 2018-08-06
  • 打赏
  • 举报
回复
没那么简单,中间可能有重定向,一般大公司都有SSO,不是真正的浏览器模拟登陆还是很难的。
zhaihuadefennu 2018-08-03
  • 打赏
  • 举报
回复
你的page这样应该是读不到click之后的页面吧,page =   button.click();试试
无所依赖 2015-06-09
  • 打赏
  • 举报
回复
求真相!我也在研究中。。。
xiaoshouxiaosh 2015-04-27
  • 打赏
  • 举报
回复
我的可以登录成功,我只是把账号密码是用htmlnput类来定义,你可以自己看一下,htmlunit有没有抛出什么异常,每个控件是否正确捕捉到了。
Defonds 2015-03-13
  • 打赏
  • 举报
回复
返回来就没有一些有用的提示?比如用户名不存在。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧