QTP自传之web常用对象
隨著科技的進步,“下載-安裝-運行”這經典的三步曲已離我們遠去。web應用的高速發展,改變了我們的思維和生活習慣,同時也使web方面的自動化測試越來越重要。今天,介紹一下我對web對象的識別,為以后的對象庫編程打下基礎。
Browser
Browser對象即瀏覽器對象,例如IE,FF,Chrome。Browser對象是所有web對象的父級對象,是金字塔的頂端,我在Description properties中對它也沒有什么約束。使用Object Spy查看Browser對象
Properties中可以看到瀏覽器的相關屬性,因為我現在測試的系統需要測試IE6的兼容性,大家看到我的IE版本還是6-_-! Operations列出了Browser對象可以使用的方法,下面介紹幾個常用的方法(先將Browser對象加入對象庫)。
1.SystemUtil.Run,打開瀏覽器,具體使用方式可以F1查看。
2.Sync,同步方法,意思是等待瀏覽器完全打開再進行下一步的操作。
3.Navigate,打開URL。
4.Close,關閉瀏覽器。
1 Systemutil.Run "iexplore.exe" 2 Browser("Browser").Sync 3 Browser("Browser").Navigate ("http://localhost/qtp/demo-login.php") 4 Browser("Browser").Close?
tips:打開指定網址還可以用Systemutil.Run方法,上述代碼可以簡化為
1 Systemutil.Run "iexplore.exe","http://localhost/qtp/demo-login.php" 2 Browser("Browser").Close?
Page
Page對象一般是Browser的子對象,每一個頁面就是一個Page對象,Page對象的Name值是HTML標簽中Title的值。Page對象的重要方法有Exist、Sync、Childobjects等。實際工作中對Browser和Page的操作很少,大多是一些打開關閉和同步的操作。
WebEdit
網頁中的輸入框可以被我識別為WebEdit對象,Operations里依然有很多方法,大家可以自行查看。
1 <html> 2 <head> 3 <title>web對象演示</title> 4 <meta http-equiv="Content-type" content="text/html" charset="utf-8"> 5 <style> 6 .content{ 7 width:260px; 8 height:30px; 9 } 10 .edit{ 11 width:170px; 12 } 13 span{ 14 width:70px; 15 } 16 </style> 17 </head> 18 <body> 19 <form action="" method="POST"> 20 <div class="content"> 21 <span>text</span><input type="text" name="web" class="edit"> 22 </div> 23 <div class="content"> 24 <span>password</span><input type="password" name="web" class="edit"> 25 </div> 26 <div class="content"> 27 <span>textarea</span><textarea rows="5" cols="20" class="edit"></textarea> 28 </div> 29 </form> 30 </body> 31 </html>?
WebEdit中使用較多的set和GetROProperty方法,set用來設置輸入框中的值,GetROProperty獲取運行時對象的值。
Browser("web對象演示").Page("web對象演示").WebEdit("text").Set "111"Browser("web對象演示").Page("web對象演示").WebEdit("password").Set "222"Browser("web對象演示").Page("web對象演示").WebEdit("textarea").Set "333"a=Browser("web對象演示").Page("web對象演示").WebEdit("text").GetROProperty("value")b=Browser("web對象演示").Page("web對象演示").WebEdit("password").GetROProperty("value")c=Browser("web對象演示").Page("web對象演示").WebEdit("textarea").GetROProperty("value")msgbox "text="+a+";password="+b+";textarea="+c?
運行后輸出如下
Link
顧名思義,Link是網頁中的鏈接,我們在剛才的網頁中加入如下代碼
<div class="content"><span>link</span><a href="http://www.baidu.com">點這里跳轉到百度</a> </div>?
對Link對象的操作主要有Click、CheckProperty。CheckProperty方法是檢查Link對象的url屬性是否正確,click就是點擊操作,運行下方代碼,頁面會自動跳轉至百度。
'檢查url屬性是否正確 Browser("web對象演示").Page("web對象演示").Link("點這里跳轉到百度")_ .CheckProperty "url","http://www.baidu.com/" '如果正確執行Click方法 If Reporter.RunStatus=Pass ThenBrowser("web對象演示").Page("web對象演示").Link("點這里跳轉到百度").Click End If?
WebButton
WebButton對象就是頁面中各式各樣的按鈕啦,主要操作就是Click:)
WebElement
WebElement主要是頁面中的div,span,p等標簽包涵的內容,一般用來驗證數據的正確性,例如上面例子中的span標簽。
If Browser("web對象演示").Page("web對象演示")_ .WebElement("password").GetROProperty("innerhtml")="password" thenmsgbox "ok" end if?
WebList
我將頁面中的下拉框識別為WebList對象,在我們的演示網頁中加入以下代碼。
1 <div class="content"> 2 <span>select</span> 3 <select> 4 <option value ="php">php</option> 5 <option value ="java">java</option> 6 <option value="vbs">vbs</option> 7 <option value="python">python</option> 8 </select> 9 </div>?
注意Properties中的all items屬性,它包括了list中的所有選項,選擇WebList中的選項用的是Select方法,用法和set方法一樣。
WebRadioGroup && WebCheckBox
WebRadioGroup單選框對象,WebCheckBox復選框對象,加入如下代碼。
1 <div class="content"> 2 <span>radio</span> 3 <input type="radio" name="sex" value="boy" checked="checked">男 4 <input type="radio" name="sex" value="girl">女 5 </div> 6 <div class="content"> 7 <span>checkbox</span> 8 <input type="checkbox" name="swim" value="swim" id="swim">游泳 9 <input type="checkbox" name="game" value="game" id="game">游戲 10 <input type="checkbox" name="read" value="read" id="read">閱讀 11 </div>?
選擇單選框和復選框的代碼如下
Browser("web對象演示").Page("web對象演示").WebRadioGroup("sex").Select "girl" Browser("web對象演示").Page("web對象演示").WebCheckBox("read").Set "ON" Browser("web對象演示").Page("web對象演示").WebCheckBox("swim").Set "ON"?
WebTable
WebTable對象是網頁控件中的重點與難點,在網頁布局中table一般用于數據的展示,這也是我們測試的重點所在。老樣子,現在網頁中創建table控件,加入以下代碼。
<table><tr><td>text1</td><td>textarea1</td><td>sex1</td><td>hobby1</td></tr><tr><td>text2</td><td>textarea2</td><td>sex2</td><td>hobby2</td></tr><tr><td>text3</td><td>textarea3</td><td>sex3</td><td>hobby3</td></tr> </table>?
并在style標簽中加入
table{ border: 1px solid black; padding:0; margin:0 auto; border-collapse: collapse; } td{ border: 1px solid black; font-size:12px; padding: 3px 3px 3px 8px; color: black; }?
從圖中可以看到,我將td中識別為WebElement對象,將td的父級元素即table識別為WebTable對象。WebTable對象的方法有很多,這里列舉幾個常用的方法,參考下面的代碼。
1 '獲取列數 2 col=Browser("web對象演示").Page("web對象演示").WebTable("table").ColumnCount(1) 3 '獲取行數 4 row=Browser("web對象演示").Page("web對象演示").WebTable("table").RowCount 5 '獲取指定單元格的值 6 info=Browser("web對象演示").Page("web對象演示").WebTable("table").GetCellData(1,1) 7 '得到指定單元格內的測試對象的數目 8 Dim obj 9 obj=Browser("web對象演示").Page("web對象演示").WebTable("table").ChildItemCount(1,1,"WebEdit") 10 msgbox "列數="+CStr(col)+" 行數="+CStr(row)+" 第一行第一列="+info+_ 11 "有"+CStr(obj)+"個WebEdit對象"?
運行結果如下
對于WebTable對象大部分情況下使用描述性編程,至于什么是描述性編程,那又是另一個故事了。
轉載于:https://www.cnblogs.com/michaelle/p/4023304.html
總結
以上是生活随笔為你收集整理的QTP自传之web常用对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 写真一般多少钱啊?
- 下一篇: “顾路惭奋飞”上一句是什么