4.4 處理頁面的表格(table)
表格是用來控制頁面顯示的對象,在HttpUnit中使用數(shù)組來處理頁面中的多個表格,可以用 resp.getTables() 方法獲取頁面所有的表格對象。將它們依次出現(xiàn)在頁面中的順序保存在一個數(shù)組里。
// 創(chuàng)建一個WebConversation對象
WebConversation wc = new WebConversation();
// 設(shè)置HTTP代理服務(wù)器地址和端口
wc.setProxyServer( "proxy.pvgl.sap.corp", 8080 );
// 新建一個URL請求對象req
WebRequest req = new GetMethodWebRequest("http://httpunit.sourceforge.net/doc/cookbook.html");
// 發(fā)出一個請求req,并取得它相對應(yīng)的響應(yīng)resp
WebResponse resp = wc.getResponse(req);
// 獲得響應(yīng)的頁面中的 Table
WebTable[] tables = resp.getTables();
// 取出第一個 table
WebTable table = tables[0];
// 從 2 * 2 的 table 取出cell里的值
for ( int i=0 ; i<3 ; i++ ) {
for ( int j=0 ; j<2 ; j++ )
System.out.println(table.getCellAsText(i,j).trim());
}
4.5 處理頁面的表單(form)
表單是用來接受用戶輸入,也可以向用戶顯示用戶已輸入信息(如需要用戶修改數(shù)據(jù)時,通常會顯示他以前輸入過的信息),在HttpUnit中使用數(shù)組來處理頁面中的多個表單,你可以用resp.getForms()方法獲取頁面所有的表單對象。他們依照出現(xiàn)在頁面中的順序保存在一個數(shù)組里面。
// 建立一個WebConversation實例
WebConversation wc = new WebConversation();
// 獲取響應(yīng)對象
WebResponse resp = wc.getResponse( "http://www.sqalab.com/article/html/article_59.html" );
// 獲得對應(yīng)的表單對象
WebForm webForm = resp.getForms()[0];
// 獲得表單中所有控件的名字
String[] pNames = webForm.getParameterNames();
int i = 0;
int m = pNames.length;
// 循環(huán)顯示表單中所有控件的內(nèi)容
while(i<m){
System.out.println("第"+(i+1)+"個控件的名字是"+pNames[i]+
",里面的內(nèi)容是"+webForm.getParameterValue(pNames[i]));
++i;
}