描述编程中的Description对象
上一篇 /
下一篇 2007-06-29 14:02:18
/ 个人分类:QTP
在
QTP Professional帮助文件中的Index页输入关键字"descrīptive programming",就可以找到主题为"Using Programmatic Descrīptions"的文章。这篇文章介绍了描述编程,并且提及描述编程的两种表现形式。
There are two types of programmatic descrīptions. You can either list the set of
properties and values that describe the object directly in a test statement, or
you can add a collection of properties and values to a Descrīption object, and
then enter the Descrīption object name in the statement. |
其中的第一种形式是在
测试语句中直接列出描述对象的属性和属性值的集合,易于理解和使用。例如,描述某个页面上的CheckBox可以写成如下形式,其中Prop和Value集合是识别该对象的属性和值集合:
Browser(**).Page(**).WebCheckBox("Prop01:=Value01","Prop02:=Value02",...).Set "ON" |
第二种形式则是把描述对象的属性和属性值的集合加入到Descrīption对象中,然后在测试语句中使用这个Descrīption对象。还是上面的例子,使用了Descrīption对象后语句变成了:
Dim objDesc Set ōbjDesc = Descrīption.Create() objDesc("Prop01").Value = "Value01" objDesc("Prop02").Value = "Value02" ... Browser(**).Page(**).WebCheckBox(objDesc).Set "ON" |
其实这两种形式没有什么区别,但是各有特点。前者形式简洁但是可读性差些,后者形式复杂但是可读性好些。当识别对象的属性和值集合内容不多的时候,还是用前者比较方便。
那什么时候用Descrīption对象比较好呢,就像某个帖子讨论过的,Descrīption对象和ChildObjects方法结合使用比较体现优点。下面的例子取自我们在项目中开发的测试脚本,目的是在一个Table中遍历样式为"actions.gif"且类型为"Image"的所有对象。
Dim objDesc, objImgs Set ōbjDesc = Descrīption.Create() objDesc("micclass").Value = "Image" objDesc("file name").Value = "actions.gif" Set ōbjImgs = Browser("Browser").Page("Enterprise").WebTable("Detail View").ChildObjects(objDesc) Dim intCount, i, strHref, strHref intCount = objImgs.Count - 1 For i = 0 To intCount strHref = objImgs(i).GetROProperty("href") Next |
其中的关键是Descrīption对象的创建
Set ōbjDesc = Descrīption.Create()
对象的属性-值集合,其实就是人为设定的QTP用来识别某类对象的属性和值特征。这个例子里面就是
objDesc("micclass").Value = "Image" '对象类型为Image
objDesc("file name").Value = "actions.gif" '对象使用的文件名为actions.gif
这些属性-值都可以用SPY工具得到
最后加上ChildObjects方法
Set ōbjImgs = Browser("Browser").Page("Enterprise").WebTable("Detail View").ChildObjects(objDesc)
将所有符合Descrīption对象描述的特征的那些对象从WebTable("Detail View")里面取出来。objImgs即包含在WebTable中的所有符合Descrīption描述的所有对象集合。
相关阅读:
- VBScript:处理文件(创建、写入、读取、删除) (阅微草人, 2007-6-22)
- qtp一个比较综合的使用 (风在吹, 2007-6-22)
- [原创]在QTP中使用描述性编程 (风过无息, 2007-6-24)
- [原创]QTP日志实践的几点启示 (风过无息, 2007-6-24)
- QTP相关的插件下载 (51testing, 2007-6-26)
- 解决QTP无法识别导航菜单的方法介绍 (Lola1123, 2007-6-27)
- QTP总结之(一)-通过ODBC连接ORACLE (sunqiang1024, 2007-6-28)
- [原创]在QTP中向WORD文档添加纪录 (风过无息, 2007-6-28)
- [原创]在QTP中把weblist抓图下来 (风过无息, 2007-6-29)
- [原创]在QTP中判断是否是字符串的方法 (风过无息, 2007-6-29)
收藏
举报
TAG:
QTP