﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-小菜毛毛技术分享-随笔分类-htmlunit</title><link>http://www.blogjava.net/caizh2009/category/45148.html</link><description>与大家共同成长</description><language>zh-cn</language><lastBuildDate>Fri, 28 May 2010 07:57:03 GMT</lastBuildDate><pubDate>Fri, 28 May 2010 07:57:03 GMT</pubDate><ttl>60</ttl><item><title>htmlunit 示例</title><link>http://www.blogjava.net/caizh2009/archive/2010/05/28/322145.html</link><dc:creator>小菜毛毛</dc:creator><author>小菜毛毛</author><pubDate>Fri, 28 May 2010 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/caizh2009/archive/2010/05/28/322145.html</guid><wfw:comment>http://www.blogjava.net/caizh2009/comments/322145.html</wfw:comment><comments>http://www.blogjava.net/caizh2009/archive/2010/05/28/322145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/caizh2009/comments/commentRss/322145.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/caizh2009/services/trackbacks/322145.html</trackback:ping><description><![CDATA[刚换了项目组，接触到了htmlunit，就把官方示例翻译一下，作为入门：<br />
先下载依赖的相关JAR包：http://sourceforge.net/projects/htmlunit/files/<br />
示例1：获取javaeye网站的title<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.gargoylesoftware.htmlunit.WebClient;<br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;com.gargoylesoftware.htmlunit.html.HtmlPage;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;getHomeTile()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;FailingHttpStatusCodeException,&nbsp;MalformedURLException,&nbsp;IOException{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;WebClient&nbsp;webClient&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;WebClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlPage&nbsp;htmlPage&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;webClient.getPage(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://www.javaeye.com</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(htmlPage.getTitleText());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(htmlPage.getTextContent());<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
可以看见打印出：JavaEye Java编程 Spring框架 AJAX技术 Agile敏捷软件开发 ruby on rails实践 - JavaEye做最棒的软件开发交流社区<br />
和javaeye首页的title属性一样<br />
示例二：获取一个特定的浏览器版本<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;homePage_Firefox()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;WebClient&nbsp;webClient&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;WebClient(BrowserVersion.FIREFOX_2);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlPage&nbsp;page&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;webClient.getPage(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://htmlunit.sourceforge.net</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;assertEquals(</span><span style="color: #000000;">"</span><span style="color: #000000;">HtmlUnit&nbsp;-&nbsp;Welcome&nbsp;to&nbsp;HtmlUnit</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;page.getTitleText());<br />
}</span></div>
示例三：获取特定ID的DIV或者锚链接<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;getElements()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;WebClient&nbsp;webClient&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;WebClient();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlPage&nbsp;page&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;webClient.getPage(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://some_url</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlDivision&nbsp;div&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;page.getHtmlElementById(</span><span style="color: #000000;">"</span><span style="color: #000000;">some_div_id</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlAnchor&nbsp;anchor&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;page.getAnchorByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">anchor_name</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
}</span></div>
实例四：模拟页面提交一个form<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;submittingForm()&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;Exception&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;WebClient&nbsp;webClient&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;WebClient();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Get&nbsp;the&nbsp;first&nbsp;page</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlPage&nbsp;page1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;webClient.getPage(</span><span style="color: #000000;">"</span><span style="color: #000000;">http://some_url</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Get&nbsp;the&nbsp;form&nbsp;that&nbsp;we&nbsp;are&nbsp;dealing&nbsp;with&nbsp;and&nbsp;within&nbsp;that&nbsp;form,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;find&nbsp;the&nbsp;submit&nbsp;button&nbsp;and&nbsp;the&nbsp;field&nbsp;that&nbsp;we&nbsp;want&nbsp;to&nbsp;change.</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlForm&nbsp;form&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;page1.getFormByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">myform</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlSubmitInput&nbsp;button&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;form.getInputByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">submitbutton</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlTextInput&nbsp;textField&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;form.getInputByName(</span><span style="color: #000000;">"</span><span style="color: #000000;">userid</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Change&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;text&nbsp;field</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;textField.setValueAttribute(</span><span style="color: #000000;">"</span><span style="color: #000000;">root</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Now&nbsp;submit&nbsp;the&nbsp;form&nbsp;by&nbsp;clicking&nbsp;the&nbsp;button&nbsp;and&nbsp;get&nbsp;back&nbsp;the&nbsp;second&nbsp;page.</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">final</span><span style="color: #000000;">&nbsp;HtmlPage&nbsp;page2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;button.click();<br />
}</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/caizh2009/aggbug/322145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/caizh2009/" target="_blank">小菜毛毛</a> 2010-05-28 15:32 <a href="http://www.blogjava.net/caizh2009/archive/2010/05/28/322145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>