一、描述性编程

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("html tag:=INPUT","name:=wd").Set "QTP自动化测试技术领航"
Browser("micClass:=Browser").Page("micClass:=Page").WebButton("html tag:=INPUT","name:=百度一下","type:=submit").Click
总结:如果父对象描述了,子对象则一定要描述;但是子对象如果描述了,父对象可以不描述(父对象要添加到对象库中
2、使用Description对象,它可以返回包含一组Property对象的Properties集合对象(Property对象由属性名和值组成)
语法: Set ObjDescription=Description.Create()
例子:
Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("html tag:=INPUT","name:=wd").Set "QTP自动化测试技术"
通过Description对象的脚本如下:
Set ObjBrowser=Description.Create()
ObjBrowser("micClass").Value="Browser"
Set ObjPage=Description.Create()
ObjBrowser("micClass").Value="Page"
Set ObjWebEdit=Description.Create()
ObjWebEdit("html tag").Value="INPUT"
ObjWebEdit("name").Value="wd"
Browser(ObjBrowser).Page(ObjBrowser).WebEdit(ObjWebEdit).Set"QTP自动化测试技术"
'释放对象
Set ObjBrowser=Nothing
Set ObjPage=Nothing
Set ObjWebEdit=Nothing
二、描述性编程案例:
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:=网页").Exist
Print .link("name:=地图").Exist
End With
Set baidu=Nothing
分析:先用Set将公共部分提取,然后使用with将复用代码提取
2、同时操作多个窗口
systemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe"
systemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe"
Browser ("CreationTime:=0").Navigate "http;//www.baidu.com"
Browser ("CreationTime:=1").Navigate ""
分析:使用Browser(CreationTime:=-1)来判断当前打开的浏览器窗口有几个
ObjBrowser=Browser(""CreationTime:=-1).Exist(0)
If ObjBrowser then
MsgBox "只存在一个窗口"
else
MsgBox "存在0个或者多个浏览器窗口"
End If
3、通过遍历对象完成N个相同控件的操作
‘打开百度网站高级搜索页面
systemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","URL"
'描述WebEdit对象
set all_oEdit=Description.Create
all_oEdit("micClass").value="WebEdit"
'为WebEdit找父对象和祖父对象,并包装在一起
set all_oEdits=Browser("micClass:=Browser").Page("micClass:=Page").ChildObjects(all_oEdit)
'遍历对象
For i=0 to all_oEdits-1
set oEdit=all_oEdits.item(i)
oEdit.Set "QTP自动化测试技术"
Next
Set all_oEdit=Nothing
Set all_oEdits=Nothing
Set oEdit=Nothing