QTP中的Description对象详解

来源:互联网 发布:淘宝执行运营工资高吗 编辑:程序博客网 时间:2024/04/20 23:16

在QTP中,description对象的用途基于这样一个基础:QTP是建立在对象识别基础上的自动化测试工具,当需要操作一个对象时有三种方式:1,使用对象库中已经记录的控件名;2,使用描述性编程;3,使用description对象。

         其实对于2和3的理解是类似的,也就是说,当QTP在执行过程中需要给他一个描述,即“我要操作谁”,对于第二种方式,是告诉QTP“你给我找一个控件对象,找到它可能需要经过几层查找,但是我已经给定了每层查找的查找条件”;对于第三种方式,一般是这样告诉QTP,“我现在有某个控件对象,你帮我查找某些符合条件的孩子”

         上面说起来有点拗口,其实就是下面两种那个方式:

方式1

Browser("title:=Google").Page("title:=Google").Link("text:=Google").click

方式2

      Dim oDesc      

      Dim colObject   

      Set oDesc = Description.Create

      oDesc( "micclass" ).value = "Link"

      Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc )

 

那么我们在使用description对象时经常需要注意的点有:

1.  创建一个description对象的方法是:

Set oDesc = Description.Creates

 

2.  设置查找条件的方法是:

Set oDesc = Description.Create
oDesc( "micclass" ).value = "Link"
      oDesc( "text" ).value = "Images"
 

3.  看一个对象是否找到以及是否查找正确你可以有两种方法:

高亮查找到的控件:colObject(0).Highlight

检查查找到的控件个数:Msgbox colObject.Count

  

4.  给定限定条件你也可以使用正则表达式,不过注意设置开关打开:

Set oDesc = Description.Create
oDesc( "micclass" ).value = "Link"
oDesc( "text" ).value = "I.*age.*"  
oDesc( "text" ).regularExpression = True

注意:默认情况下正则表达式的开关是打开的

      如果你这里正则表达式的开关设置成为了false,那么你查找到的是text属性为“I.*age.*”的link。

 

5.  注意某些description的成员设置属性值时,需要使用整型数,而非字符串。

Dim oDesc        
Dim colObject    
Set oDesc = Description.Create
oDesc( "micclass" ).value = "Link"
oDesc( "x" ).value = 51             
Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc ) 
MsgBox colObject.Count 
For x = 0 to colObject.Count - 1
 MsgBox colObject(x).GetROProperty("innertext")
Next

 

 

6.  限定条件可以参数化

Dim x
X=56
Browser("creationtime:="&x).Page("micclass:=Page").WebEdit("name:=q").Set "Description.Create"

 

参考资料:

下面这篇文章中主要介绍了description对象的各种使用规则,基本上看完这篇文章你就知道如何使用description对象了。

http://relevantcodes.com/qtp-all-about-the-description-object-description-create/

 

下面这篇文章主要介绍QTP中的封装属性的,例如我们在给定我们限定条件的时候,如何知道到底是应该给“Class Name”还是“MicClass”呢,那么你 打开注册表“HKEY_CURRENT_USER/Software/Mercury Interactive/QuickTest Professional/MicTest/Attributes/”看看有什么封装属性。

http://blog.csdn.net/zzxxbb112/archive/2010/03/17/5389043.aspx

 

0 0