使用htmlunit的好处有两点,相比httpclient,htmlunit是对浏览器的模拟,比如你定位一个按钮,就可以执行click()方法,此外不需要象在httpclient中一样编写复杂的代码,如一堆request header还有一大堆请求参数,你只需要填写用户名,密码,验证码即可,就象在使用一个没有界面的浏览器,当然更重要的是htmlunit对js的支持设置极其简单
1.添加maven的htmlunit(标红)依赖
1
2
3 junit
4 junit
5 ${junit.version}
6 test
7
8
9 com.alibaba
10 fastjson
11 1.2.47
12
13
14 org.jsoup
15 jsoup
16 1.11.3
17
18
19 net.sourceforge.htmlunit
20 htmlunit
21 2.18
22
23
24
2.思路
定位用户名,密码,验证码框等元素,填写即可,验证码可以先把图片下载下来然后手动输入,也可以使用tess4j进行图片识别,这里是手动输入测试的网站,是一个伪ajaxsubmit,测试多次发现需要二次输入验证码才能正确登录,但令人疑惑的是两次生成的验证码一样(如果不一样说明你第一次输入错误)
1 pub