一、描述性编程
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