HtmlUnit基础

HtmlUnit是Junit 的扩展测试框架之一,该框架模拟浏览器的行为,开发者可以使用其提供的API对页面的元素进行操作。HtmlUnit支持HTTP,HTTPS,COOKIE,表单的POST和GET方法,能够对HTML文档进行包装,页面的各种元素都可以被当作对象进行调用,对JavaScript的支持也比较好。
软件地址:http://htmlunit.sourceforge.net/

下面介绍HtmlUnit的简单实用:

view plaincopy to clipboardprint?
import java.net.URL;  
 
import junit.framework.TestCase;  
 
import com.gargoylesoftware.htmlunit.BrowserVersion;  
import com.gargoylesoftware.htmlunit.WebClient;  
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;  
import com.gargoylesoftware.htmlunit.html.HtmlForm;  
import com.gargoylesoftware.htmlunit.html.HtmlHiddenInput;  
import com.gargoylesoftware.htmlunit.html.HtmlPage;  
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;  
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;  
 
public class HtmlUnitTest extends TestCase{  
      
    /** 
     * 模拟特定浏览器.这样做是通过传递  com.gargoylesoftware.htmlunit.BrowserVersion到的WebClient构造。 
     * 常数提供了一些常见的浏览器,但您可以创建自己的特定版本的执行一个BrowserVersion 。 
     * @throws Exception 
     */ 
    public void testHomePage() throws Exception {  
        // 新建一个WebClient对象,此对象相当于浏览器  
        final WebClient webClient=new WebClient(BrowserVersion.INTERNET_EXPLORER_7);  
        // 构造一个URL,指向需要测试的URL,如http://www.iteye.com     
        URL url=new URL("http://www.163.com");  
         // 通过getPage()方法,返回相应的页面  
        final HtmlPage page=webClient.getPage(url);  
        System.out.println("sss"+page.getTitleText());        
        //断言网页的Title是“网易”  
        assertEquals("网易", page.getTitleText());   
          
    }  
      
    /** 
     * 测试表单 
     * @throws Exception 
     */ 
    public void testFormPage() throws Exception {     
        final WebClient webClient = new WebClient();     
    
        // 获取首页     
        final HtmlPage page = (HtmlPage) webClient.getPage("http://127.0.0.1:8080/SecurityCenter/index.jsp");     
    
        // 根据form的名字获取页面表单,也可以通过索引来获取:page.getForms().get(0)     
        final HtmlForm form = page.getFormByName("myform");     
        final HtmlSubmitInput button= (HtmlSubmitInput) form.getInputByNam("mysubmit");     
        final HtmlTextInput textField = (HtmlTextInput) form.getInputByName("tbException.exceptionDesc");    
 
        // 设置表单域的值     
        textField.setValueAttribute("测试数据");     
        // 提交表单,返回提交表单后跳转的页面     
        final HtmlPage page2 = (HtmlPage) button.click();           
    }   
      
 
    /*** 
     * 测试超链接 
     * @throws Exception 
     */ 
    public void testAnchor()throws Exception{  
        final WebClient webClient = new WebClient();           
        // 获取测试首页     
        final HtmlPage page = (HtmlPage) webClient.getPage("http://127.0.0.1:8080/SecurityCenter/index.jsp");    
        // 或取一个<a>的超链接     
        HtmlAnchor anchor =page.getAnchorByName("lianjie");           
        //执行超链接的单击事件  
        final HtmlPage page2=anchor.click();          
        //打印成功返回后的页面    HtmlPage对象,就是包装了页面Html的一个对象,可以通过page.getWebResponse(). getContentAsString()直接返回页面的html代码  
        String pageContent = page2.getWebResponse().getContentAsString();   
        System.out.println("返回的页面:"+pageContent);  
          
        //获得返回页面隐藏控件  
        final HtmlHiddenInput hHiddenInput=page2.getHtmlElementById("msg");  
        //打印控件的值  
        System.out.println("msg:"+hHiddenInput.getValueAttribute());    
    }  
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sl83828/archive/2010/06/24/5691027.aspx

你可能感兴趣的:(html,jsp,浏览器,软件测试,JUnit)