HtmlUnit是什么?看下介绍:
A java GUI-Less browser, which allows high-level manipulation of web pages, such as filling forms and clicking links; just getPage(url), find a hyperlink, click() and you have all the HTML, JavaScript, and Ajax are automatically processed.
HtmlUnit是一个没有界面的浏览器,但是通过它提供的API,你可以操作页面元素等等。来看下怎么使用。
首先你要有HtmlUnit的jar包,添加到项目中。
然后新建一个Test类,创建HtmlUnit对象,传入网址,接着你就可以使用API工具对页面元素为所欲为了。。
1.输入当前网址页面所有元素:
是不是很强大,短短的几行代码就可以获取页面所有元素,把浏览器玩弄于股掌之间,当然不仅仅是这些功能。
之前的结果中出现了css的error,这是因为可能浏览器引擎之间支持的不是很好,可以事先关闭掉CSS和JS的解析器。只要不影响我们自己的执行语句。
错误没有了,当如果需要执行js语句的时候,可以将上述语句注释掉即可。
在上面我们获得了页面元素,接下来可以对元素进行操作。看!
可以简单地通过id来获取相应的元素名称:
final DomNode div= page.getElementById("su");
System.out.println(div.asText());
输出结果:百度一下
还可以获取弹出窗的对象操作句柄。
public void setAlertHandler(final AlertHandler alertHandler) {
alertHandler_ = alertHandler;
}
粗略的看了一下HtmlUnit的API,还提供了获取dialog弹出对话框的方法。
public DialogWindow openDialogWindow(final URL url, final WebWindow opener, final Object dialogArguments)
throws IOException {
final DialogWindow window = new DialogWindow(this, dialogArguments);
fireWindowOpened(new WebWindowEvent(window, WebWindowEvent.OPEN, null, null));
}
HtmlUnit与Selenium那个更牛呢?selenium底层是模拟浏览器操作,而HtmlUnit是直接调用自己的浏览器引擎。似乎HtmlUnit更胜一筹。