Qtp-descriptive-programming
提供:Dev Guides
QTP-記述的プログラミング
QTPスクリプトは、オブジェクトがオブジェクトリポジトリに存在する場合にのみ実行できます。 オブジェクトの説明は、記述プログラミングを使用して作成されます-
- テスターがオブジェクトリポジトリに存在しないオブジェクトに対して操作を実行する場合
- アプリケーション内のオブジェクトが本質的に非常に動的な場合。
- オブジェクトリポジトリが大きくなると、オブジェクトリポジトリのサイズが大きくなるため、パフォーマンスが低下します。
- フレームワークが構築され、オブジェクトリポジトリをまったく使用しないことが決定されたとき。
- テスターが、オブジェクトの一意のプロパティを知らなくても、実行時にアプリケーションでアクションを実行したい場合。
構文
記述的プログラミング手法を使用してスクリプトを作成するには、2つの方法があります。 彼らは-
- 説明オブジェクト
- 説明文字列
説明オブジェクト
スクリプトは、使用されるプロパティとそれに対応する値に依存する説明オブジェクトを使用して開発されます。 次に、これらの説明を使用してスクリプトを作成します。
'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
説明文字列
オブジェクトの説明は、以下に示すように、プロパティと値を文字列として使用して作成されます。
Browser("Math Calc").Page("Num Calculator").WebButton("html
tag:=INPUT","type:=Button","name:=calculate").Click
子オブジェクト
QTPは、オブジェクトのコレクションを作成できるChildObjectsメソッドを提供します。 親オブジェクトはChildObjectsの前にあります。
Dim oDesc
Set oDesc = Description.Create
oDesc("micclass").value = "Link"
'Find all the Links
Set obj = Browser("Math Calc").Page("Math Calc").ChildObjects(oDesc)
Dim i
'obj.Count value has the number of links in the page
For i = 0 to obj.Count - 1
'get the name of all the links in the page
x = obj(i).GetROProperty("innerhtml")
print x
Next
順序識別子
記述的プログラミングを使用して、順序識別子に基づいてスクリプトを記述します。これにより、2つ以上のオブジェクトが同じプロパティを持つ場合、QTPがこれらのオブジェクトに作用できるようになります。
' Using Location
Dim Obj
Set Obj = Browser("title:=.*google.*").Page("micclass:=Page")
Obj.WebEdit("name:=Test","location:=0").Set "ABC"
Obj.WebEdit("name:=Test","location:=1").Set "123"
' Index
Obj.WebEdit("name:=Test","index:=0").Set "1123"
Obj.WebEdit("name:=Test","index:=1").Set "2222"
' Creation Time
Browser("creationtime:=0").Sync
Browser("creationtime:=1").Sync
Browser("creationtime:=2").Sync