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

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





  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值