1.描述性编程的思想
思想:对象没有添加到对象库,就用描述性编程的方法。如果有些对象无法添加到对象库中,也可以用描述性编程。
2.描述性编程的2种写法
1)Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("name:=wd").Set "QTP自动化测试技术领航"
Browser("micClass:=Browser").Page("micClass:=Page").WebButton("name:=百度一下").Click
也可以多个属性来确定一个对象:属性之间用逗号(英文状态下的逗号)分开
Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("name:=wd","html tag:=INPUT").Set "QTP自动化测试技术领航"
说明:如果父对象用描述性编程的方式,则子对象一定要用,否则会报错。
如果子对象用描述性编程的方式,父对象可以不用这种方式。(前提是父对象添加到了对象库中,如果没有添加,则要用描述性编程的方法)
2)描述性编程的第2种方式:描述
用description对象进行描述,返回一组property对象的properties集合对象。property对象由属性名和值组成。
方法如下:
Set ObjDescription = Description.Create()
ObjDescription("micClass").value = "Browser"
Set ObjPage = Description.Create()
ObjPage("micClass").value = "Page"
Set ObjWebEdit = Description.Create()
ObjWebEdit("html tag").value = "INPUT"
ObjWebEdit("name").value = "wd"
Browser(ObjDescription).Page(ObjPage).WebEdit(ObjWebEdit).Set "QTP自动化测试技术领航"
'释放对象,从内层到外层依次释放对象
Set ObjWebEdit =Nothing
Set ObjPage =Nothing
Set ObjDescription =Nothing
3.两种方式的比较以及应用场景
对象库的编程:推荐使用。简单,易懂,快速
描述性的编程:在对象库编程无法实现的情况下,可以用描述性编程,这样脚本清楚易懂,更加维护。
对象库编程使用于普通脚本中,描述性编程使用于基于框架的脚本中,因为代码的复用性高。具体哪种方式,要看项目。
4.Object Identification 与 Spy结合 DP的妙用
描述性编程可以先定义Object Identification 里面的属性,如果满足不了,在增加属性。
5.描述性编程的适用场景
1)一个首页有很多相同的类别的控件,一个个添加很繁琐,既然他们是相同类型的控件,就用描述性编程。如下:
Set baidu = Browser("micClass:=Browser").Page("micClass:=Page")
Print baidu.Link("name:=新闻").Exist
With baidu
Print .Link("name :=贴吧").Exist
Print .Link("name :=图片").Exist
Print .Link("name :=知道").Exist
Print .Link("name :=MP3").Exist
End With
Set baidu = Nothing
2)如果要同时操作多个浏览器的窗口
3) 适用描述性编程遍历对象完成N个同类控件的操作