1. 程式人生 > >QTP中的Description物件詳解

QTP中的Description物件詳解

在QTP中,description物件的用途基於這樣一個基礎:QTP是建立在物件識別基礎上的自動化測試工具,當需要操作一個物件時有三種方式:1,使用物件庫中已經記錄的控制元件名;2,使用描述性程式設計;3,使用description物件。

         其實對於2和3的理解是類似的,也就是說,當QTP在執行過程中需要給他一個描述,即“我要操作誰”,對於第二種方式,是告訴QTP“你給我找一個控制元件物件,找到它可能需要經過幾層查詢,但是我已經給定了每層查詢的查詢條件”;對於第三種方式,一般是這樣告訴QTP,“我現在有某個控制元件物件,你幫我查詢某些符合條件的孩子”

         上面說起來有點拗口,其實就是下面兩種那個方式:

方式1

Browser("title:=Google").Page("title:=Google").Link("text:=Google").click

方式2

      Dim oDesc      

      Dim colObject   

      Set oDesc = Description.Create

      oDesc( "micclass" ).value = "Link"

      Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc )

那麼我們在使用description物件時經常需要注意的點有:

1.  建立一個description物件的方法是:

Set oDesc = Description.Creates

2.  設定查詢條件的方法是:

Set oDesc = Description.Create
oDesc( "micclass" ).value = "Link"
      oDesc( "text" ).value = "Images"

3.  看一個物件是否找到以及是否查詢正確你可以有兩種方法:

高亮查詢到的控制元件:colObject(0).Highlight

檢查查詢到的控制元件個數:Msgbox colObject.Count

4.  給定限定條件你也可以使用正則表示式,不過注意設定開關開啟:

Set oDesc = Description.Create
oDesc( "micclass" ).value = "Link"
oDesc( "text" ).value = "I.*age.*"  
oDesc( "text" ).regularExpression = True

注意:預設情況下正則表示式的開關是開啟的

      如果你這裡正則表示式的開關設定成為了false,那麼你查詢到的是text屬性為“I.*age.*”的link。

5.  注意某些description的成員設定屬性值時,需要使用整型數,而非字串。

Dim oDesc        
Dim colObject    
Set oDesc = Description.Create
oDesc( "micclass" ).value = "Link"
oDesc( "x" ).value = 51             
Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc ) 
MsgBox colObject.Count 
For x = 0 to colObject.Count - 1
 MsgBox colObject(x).GetROProperty("innertext")
Next

6.  限定條件可以引數化

Dim x
X=56
Browser("creationtime:="&x).Page("micclass:=Page").WebEdit("name:=q").Set "Description.Create"

參考資料:

下面這篇文章中主要介紹了description物件的各種使用規則,基本上看完這篇文章你就知道如何使用description物件了。

下面這篇文章主要介紹QTP中的封裝屬性的,例如我們在給定我們限定條件的時候,如何知道到底是應該給“Class Name”還是“MicClass”呢,那麼你 開啟登錄檔“HKEY_CURRENT_USER/Software/Mercury Interactive/QuickTest Professional/MicTest/Attributes/”看看有什麼封裝屬性。