2016-12-02 77 views
2

我正在使用UFT並且在描述對象的多個屬性時遇到問題。描述性編程多個屬性

b_username = "html id:=txtUsername","type:=text" 

試着這並沒有幫助我。即使試過了「;」分隔符,但這也不起作用。

回答

4

我想你已經誤解了如何使用描述性編程來引用一個對象。

您仍然使用Browser().Page().WebEdit()(例如)的UFT語法,因爲您嘗試設置對象引用,所以您需要Set關鍵字。嘗試是這樣的:

Set b_username = Browser("micclass:=Browser").Page("micclass:=Page").WebEdit("html id:=txtUsername","type:=text") 

這將允許您使用b_username引用文本框html idtxtUsername的:

b_username.Set myUsernameValue 

對於一個不錯的基本介紹說明性編程,退房LearnQTP.com

1

你更關閉試圖做的是建立一個Description Object

你需要的東西像下面這樣:

'Creating a description object 
Set btncalc = Description.Create() 

'Add descriptions and properties 
btncalc("type").value = "Button" 
btncalc("name").value = "calculate" 
btncalc("html tag").value = "INPUT" 

' Use the same to script it 
Browser("Math Calc").Page("Num Calculator").WebButton(btncalc).Click 

這SO文章有一點更先進的技術的一個很好的解釋。

How to create description object model at runtime in uft/qtp?

請讓我知道,如果這清除了一些混亂。

0

我建議你使用下面的庫進行描述性編程。它可以幫助您避免創建大量的描述性對象。檢查下面鏈接中的使用情況。

http://www.testautomationguru.com/qtpuft-advanced-descriptive-programming/

要輸入的所有文本框的一些值(無需迭代)

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebEdit").SetValue "1" 

要在文本框的名稱以「大師」

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebEdit,name:=guru.*").SetValue "1" 
開始輸入一些值

上面的例子也可以寫成

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebEdit").WithRegExProperty("name:=guru.*").SetValue "1" 

獲取名爲guru的第五個可見子對象。

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebEdit").WithRegExProperty("name:=guru.*").Index(4).Set "1" 

要只在可見的文本框中

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebEdit").WithRegExProperty("name:=guru.*").VisibleChildObjects.SetValue "1" 

輸入值要選擇所有可見的複選框

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebCheckBox").VisibleChildObjects.SetValue "ON" 

要獲得項目數

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebCheckBox,type:=checkbox,name:=jqg_list.*").VisibleChildObjects.getCount() 

要匹配某些屬性值UE的

Browser("creationTime:=0").Page("micclass:=Page").getChildObjects("micclass:=WebEdit").WithRegExProperty("name:=guru.*").VisibleChildobjects().Set "1" 

,得到2「設置」之間有一些延遲 - [如果需要的東西]

Browser(「creationTime:=0」).Page(「micclass:=Page」).getChildObjects(「micclass:=WebEdit」).WithRegExProperty(「name:=guru.*」).VisibleChildobjects().DelayEachSetBy(1).Set 「1」