QTP对象参数化的几种方法

以前查看过对象参数化的资料说SetTOProperty 方法可以进行对象的参数化,但一直没有自己亲自实践一下,今天终于自己试了试确实如此,就其原理还是要归根到对qtp脚本运行的原理的理解上,SetTOProperty 可以修改对象库中的属性的值,而qtp脚本在运行的时候要匹配对象库中的对象和运行时的对象(对象的匹配当然是要依靠对象的属性去定位),如果匹配成功才能定位到对象,所以就会考虑到将对象库中对象的属性值进行参数化,这里SetTOProperty并不是真正的改变了对象库中属性的值而是在脚本运行的过程中动态的去修改,当脚本在运行结束的时候,查看属性值仍然为修改前的值

这里就不多说了,接下来总结了几种对象参数化的方法:
第一种:使用Description 对象
第二种:使用描述性编程
第三种:使用SetTOProperty 方法
第四种:通过对象库中参数化对象

前2种方法特点就是不依赖对象库,运行的时候可以将对象库中对应的对象删除,后面2种将依赖对象库
例子:产品中的查询日志页面的翻页功能的link对象
原代码如下:
Browser("xx").Page("xx").Image("s").Click
Browser("xx").Page("xx").Image("s_2").Click
Browser("xx").Page("xx").Link("查看日志").Click
Browser("xx").Page("xx").Frame("WorkArea").WebEdit("EVENT_TIME_BEGIN").Object.value="2010-11-13 9:00:00"
Browser("xx").Page("xx").Frame("WorkArea").WebEdit("EVENT_TIME_END").Object.value="2010-11-24 9:00:00"
Browser("xx").Page("xx").Frame("WorkArea").WebButton("提 交").Click
Browser("xx").Page("xx").Frame("WorkArea").Link("10").Click

以下将参数化Link对象,使其能分别按10,20,50 数进行翻页显示

'------使用Description 对象----
Set Desc=description.Create()
Desc("text").value=v_page
Desc("index").value=0
Desc("html tag").value="A"

Browser("xx").Page("xx").Frame("WorkArea").Link(Desc).Click
'-----------使用描述性编程--------------------

Browser("xx").Page("xx").Frame("WorkArea").Link("text:="&v_page,"index:=0","html tag:=A").Click
'--------------使用SetTOProperty 方法------------(依赖对象库),这里可以用GetTOProperty方法查看我们修改的属性值
Browser("xx").Page("xx").Frame("WorkArea").Link("10").SetTOProperty "text",v_page

Browser("xx").Page("xx").Frame("WorkArea").Link("10").Click

'-----------通过对象库中参数化对象-----------(依赖对象库)需要在对象库中将Link对象本身进行参数化

Browser("xx").Page("xx").Frame("WorkArea").Link("10").Click
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值