📅  最后修改于: 2020-12-06 10:45:40             🧑  作者: Mango
只有对象库中存在对象时,QTP脚本才能执行。使用描述性编程来创建对象的描述-
当测试人员想要对对象库中不存在的对象执行操作时
当应用程序中的对象本质上是非常动态的。
当对象存储库变大时,随着对象存储库大小的增加,性能会下降。
构建框架时,已决定完全不使用对象存储库。
当测试人员想要在运行时对应用程序执行操作而又不了解对象的唯一属性时。
使用描述性编程技术编写脚本有两种方法。他们是-
使用描述对象开发脚本,描述对象取决于所使用的属性及其相应的值。然后,使用这些描述来构建脚本。
'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
描述性编程用于基于顺序标识符编写脚本,当两个或多个对象具有相同属性时,这将使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