描述性编程
前面介绍的是通过录制,将对象保存到对象库的方式来开发脚本。QTP还有另一种方式开发脚本,就是描述性编程,这种方式可以不用对象库,其特点是有更好的灵活性并支持vbscript,你可以有更好的发挥脚本设计与编写。这就是QTP的专家视图,最新版本叫编辑器。
点击 查看-编辑器 :
Browser,Page,WebEdit就是对象,而()里的就是属性。这还是基于对象库的脚本。
我们这里介绍的是不通过对象库,而是直接描述一个对象。为了对比,我们新建一个测试项目。点击 文件-新建-测试:
依然开发一个在百度首页搜索 珠海天气 的脚本,在编辑器输入如下代码:
SystemUtil.Run "IEXPLORE.EXE", "http://www.baidu.com","","",3
If Browser("title:=百度一下,你就知道").Page("title:=百度一下,你就知道").WebEdit("html id:=kw").Exist(3) Then
Browser("title:=百度一下,你就知道").Page("title:=百度一下,你就知道").WebEdit("html id:=kw").Set "珠海天气"
End If
首先是通过SystemUtil.Run启动浏览器,第二行是通过Exist(3)判断对象是否存在,参数3是秒,也可以不传参。第三行则是通过Set给对象赋值。
Browser("title:=百度一下,你就知道")这里的Browser对象没有在对象库中存在,而是通过"title:=百度一下,你就知道",这样的属性直接描述出来的,注意和基于对象库的脚本对比。
对象通过属性描述,那么如何知道要描述的对象有哪些属性可以用呢?比如Browser和Page用的属性是title,而WebEdit对象用的是html id。其实很简单,QTP提供了一个对象查看器,
点击 工具-对象侦测器:
点击第一个按钮(手势),然后在浏览器上点击要查看的对象(元素),就可以获取到该对象所有属性和对应的值,这些属性就可以用来直接描述一个对象。
通过手写描述性对象时,建议找能唯一识别该对象的属性,如果没有的话可以添加多个属性描述,比如这样:
Browser("title:=百度一下,你就知道").Page("title:=百度一下,你就知道").WebEdit("html id:=kw",”name:=wd”).Set "珠海天气"
通过 html id和name两个属性同时描述一个对象。如果页面上确实有两个一模一样的对象,那么通过index来区分,比如:
Browser("title:=百度一下,你就知道").Page("title:=百度一下,你就知道").WebEdit("html id:=kw",”name:=wd”,”index:=0”).Set "珠海天气"
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友