描述性编程

前面介绍的是通过录制,将对象保存到对象库的方式来开发脚本。QTP还有另一种方式开发脚本,就是描述性编程,这种方式可以不用对象库,其特点是有更好的灵活性并支持vbscript,你可以有更好的发挥脚本设计与编写。这就是QTP的专家视图,最新版本叫编辑器。

点击 查看-编辑器

15.png


16.png

BrowserPageWebEdit就是对象,而()里的就是属性。这还是基于对象库的脚本。

我们这里介绍的是不通过对象库,而是直接描述一个对象。为了对比,我们新建一个测试项目。点击 文件-新建-测试:

21.png

依然开发一个在百度首页搜索 珠海天气 的脚本,在编辑器输入如下代码:

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:=百度一下,你就知道"这样的属性直接描述出来的,注意和基于对象库的脚本对比。

对象通过属性描述,那么如何知道要描述的对象有哪些属性可以用呢?比如BrowserPage用的属性是title,而WebEdit对象用的是html id。其实很简单,QTP提供了一个对象查看器,

点击 工具-对象侦测器:

22.png

23.png

点击第一个按钮(手势),然后在浏览器上点击要查看的对象(元素),就可以获取到该对象所有属性和对应的值,这些属性就可以用来直接描述一个对象。

20.png

通过手写描述性对象时,建议找能唯一识别该对象的属性,如果没有的话可以添加多个属性描述,比如这样:

Browser("title:=百度一下,你就知道").Page("title:=百度一下,你就知道").WebEdit("html id:=kw",”name:=wd”).Set "珠海天气"

通过 html idname两个属性同时描述一个对象。如果页面上确实有两个一模一样的对象,那么通过index来区分,比如:

Browser("title:=百度一下,你就知道").Page("title:=百度一下,你就知道").WebEdit("html id:=kw",”name:=wd”,”index:=0”).Set "珠海天气"



该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链