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