您的位置:首页 > Web前端 > HTML

HtmlUnit实现模拟浏览器点击按钮的效果

2017-08-15 20:28 519 查看
HtmlUnit简介

htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。是一个没有界面的浏览器,运行速度迅速。是junit的扩展之一

HtmlUnit示例
import java.io.IOException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
public class Ddkjg {
public static void main(String[] args) throws IOException  {
// 得到浏览器对象,直接New一个就能得到,现在就好比说你得到了一个浏览器了
WebClient webclient = new WebClient();
// 下面这2句可以写,也可以不写,设置false就是不加载css和js。访问速度更快
webclient.getOptions().setCssEnabled(false);
webclient.getOptions().setJavaScriptEnabled(false);
// 做的第一件事,去拿到这个网页,只需要调用getPage这个方法即可
HtmlPage htmlpage = webclient.getPage("https://baidu.com");
// 根据名字得到一个表单,查看上面这个网页的源代码可以发现表单的名字叫“f”
final HtmlForm form = htmlpage.getFormByName("f");
// 同样道理,获取”百度一下“这个按钮
final HtmlSubmitInput button = form.getInputByValue("百度一下");
// 得到搜索框
final HtmlTextInput textField = form.getInputByName("wd");
//设置搜索框的value
textField.setValueAttribute("战狼2");
// 设置好之后,模拟点击按钮行为。
final HtmlPage nextPage = button.click();
// 把结果转成String
String result = nextPage.asXml();
//得到的是点击后的网页
System.out.println(result);
}
}
注意问题:
1:webclient的包是htmlunit的,不是httpunit的,httpunit的webclient这个类是抽象的,不能直接new的。
2:htmlunit的包要用最新版的2.27版本的jar包。低版本的jar包是没有getOptions()这个类的。
3:如果出现这个错误 UnsupportedClassVersionError。表示版本不一致,要确保你本地jdk的版本是1.8,eclipse部署的版本也是1.8,怎么看就不说了。
jar包下载地址:https://jaist.dl.sourceforge.net/project/htmlunit/htmlunit/2.27/htmlunit-2.27-bin.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: