描述性编程(DP)

描述性编程(DP):不需要将对象添加到对象库中,其可描述的属性必须是QTP内置的属性,且都是封装接口的属性,不是自身接口的属性

有两种编程方式:

第一种:对象名(“属性名:=属性值”)

Browser("micClass:=Browser").Page("micClass:=Page")._
WebEdit("html tag:=INPUT","name:=wd").Set "测试"
Browser("micClass:=Browser").Page("micClass:=Page").WebButton("name:=百度一下").Click

第二种:使用Description对象。使用该对象可以返回包含一组Property对象的Properties集合,Property对象由属性名和值组成,然后可以在语句中指定用Properties集合代替对象名

Set ObjBrowser=Description.Create()
ObjBrowser("micClass").Value="Browser"
Set ObjPage=Description.Create()
ObjPage("micClass").Value="Page"
Set ObjWebEdit=Description.Create()
ObjWebEdit("name").Value="wd"
ObjWebEdit("html tag").Value="INPUT"
Browser( ObjBrowser ).Page( ObjPage ).WebEdit( ObjWebEdit ).Set "description测试"
'最后需要记住释放对象'
Set ObjWebEdit=Nothing
Set ObjPage=Nothing
Set ObjBrowser=Nothing

描述性编程一般情况下适用于同一界面出现很多个相同类别的控件元素中,或者通过遍历对象完成对N个同类控件的操作

Set baidu=Browser("micClass:=Browser").Page("micClass:=Page")
Print baidu.Link("name:=糯米").Exist
'存在该链接打印true,反之打印false'
With baidu
    Print .Link("text:=贴吧").Exist
    Print .Link("name:=新闻").Exist
    Print .Link("name:=地图").Exist
    Print .Link("name:=视频").Exist
End With

例如下图中的百度高级搜索含有多个文本框

Set all_Edit=Description.Create()
all_Edit("micClass").value="WebEdit"
Set all_Edits=Browser("micClass:=Browser").Page("micClass:=Page").ChildObjects(all_Edit)
For Iterator = 0 To all_Edits.count-1 Step 1
    Set Edit=all_Edits.item(Iterator)
    Edit.set "自动化测试"
Next
Set Edit=nothing
Set all_Edits=nothing
Set all_Edit=nothing

若是已知元素命名编号规则,可以通过写个循环,完成动态的对对象进行识别


For Iterator = 1 To 6 Step 1
If Iterator<>5 Then 
Browser("micClass:=Browser").Page("micClass:=Page").WebEdit("name:=q"& Iterator).set "ABCD测试"    
End If
Next








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值