从现在开始,每天一点点……

Ordinal Identifier(关于index,Location,CreationTime应用)

上一篇 / 下一篇  2012-03-07 16:39:26 / 个人分类:QTP学习

除了学习Object Identification对话框中((Tools > Object Identification))规定的强制性和辅助属性,QuickTest还可以了解每一个测试对象的备份顺序标识,分配给对象的数字ordinal identifier与其他对象的an otherwise identical description有关(在mandatory and assistive property的列表中指定的对象的所有属性值都一样)。定制的值使QuickTest创建一个唯一的描述当mandatory and assistive属性不能满足时.

QTP只有在得到描述和Smart Identification机制不能足够唯一识别一个对象的时候,才会使用an ordinal identifier机制。如果QTP在运行一个会话时能使用其他测试对象属性去识别对象的,an ordinal identifier将会被忽略

Index.表示对象出现在应用程序代码中相对于其他对象具有的不一样的描述顺序

Location.表示对象出现在父WindowFrameDialog的顺序不同于其他对象的唯一描述

CreationTime.(仅适用于浏览器)被打开浏览器顺序相对于其他打开的浏览器具有唯一的描述

 

使用Index属性识别对象

QTP得到一个对象时,会分配一个值给测试对象的index属性使其能唯一的识别这个对象。这个值是基于对象在源代码中出现的顺序分配的。第一次出现的值为0

Indexproperty values are object-specific。因此,当你使用index:=3去描述WebEdit测试对象时,QTP就会在页面中搜索第四个WebEdit对象。而如果使用index:=3描述一个WebElement对象时,QTP就会搜在页面中搜索第四个web对象,与对象的类型无关,因为WebElement对象适用所有web对象。

·        an image with the name Apple

·        an image with the name UserName

·        a WebEdit object with the name UserName

·        an image with the name Password

·        a WebEdit object with the name Password

下面中的陈述指列表中的第三项,因为这是页面上第一个名称为UserNameWebEdit对象

WebEdit(“Name:=UserName”, “Index:=0”)

相反,下面的陈述指的是列表中的第二项,因为那是指所有(WebElement)对象中名称为UserName的第一个对象。

WebElement(“Name:=UserName”, “Index:=0”)

 

 

使用Location属性识别对象

但得到一个对象的时候,QTP会给测试对象的Location属性分配一个值以唯一的识别这个对象,这个值基于相对于具有相同属性的其他对象在WindowFrameDialog box中出现的顺序给出的,

第一次出现的值为0。这些值是按照从上到下,从左到右的顺序分配的。例如:

Location属性值是指定对象的。因此,如果使用Location:=3描述一个WinButton测试对象,QTP会在页面上按照从上到下,从左到右的顺序搜索第四个WinButton对象。然而,如果使用Location:=3描述一个WinObject对象,QTP会按照从上到下,从左到右的顺序搜索页面上第四个标准对象,与类型无关,因为WinObject适用于所有标准对象。

例如:一个对话框包含下面的对象

·        a button object with the name OK

·        a button object with the name Add/Remove

·        a check box object with the name Add/Remove

·        a button object with the name Help

·        a check box object with the name Check spelling

下面的陈述指的是列表中的第三项,因为它是页面上第一个名为Add/RemoveCheck box对象

WinCheckBox(“Name:=Add/Remove”, ”Location:=0”)

相反,下面的陈述值得是列表中的第二项,因为他是第一个名为Add/Remove的对象

WinObject("Name:=Add/Remove", "Location:=0")

使用CreationTime属性识别对象

当得到一个浏览器对象的时候,如果QTP不能根据它的对象描述唯一的识别这个对象时,他会给测试对象属性CreationTime分配一个值。这个值表示被打开的浏览器相对于已经打开浏览器顺序的唯一不同的描述。第一个打开的浏览器接收到CreationTime=0.

在运行一个会话期间,如果QTP不能根据测试对象仅有的描述去识别一个浏览器对象,它会检查浏览器被打开的顺序,并且使用CreationTime属性去识别正却的浏览器

例如:你录制了一个模块分别在9:01 pm, 9:03 pm, and 9:05 pm打开的浏览器上,QTP会这样分配CreationTime的值:9:01 pm打开的浏览器为CreationTime:=0, 9. 03 pm打开的浏览器为CreationTime:=1, 9.05 pm打开的浏览器为CreationTime:=2

10:30pm要运行那个模块,假设浏览器被打开分别在10:31 pm, 10:33 pm, and 10:34 pm.QTP会这样识别浏览器:用具有CreationTime:=0测试对象识别在10:31 pm被打开的浏览器,用具有CreationTime:=1测试对象识别在10:33 pm被打开的浏览器,用具有CreationTime:=2测试对象识别在10:34 pm被打开的浏览器

如果打开了几个浏览器,拥有最小CreationTime值的浏览器是第一个被打开的,拥有最大CreationTime值的浏览器是最后一个被打开的。如果有三个或者更多的浏览器被打开,拥有CreationTime:=2的是第三个被打开的浏览器。如果在运行一个session的时候打开了七个浏览器,

拥有CreationTime:=6属性的浏览器是最后打开的

如果在有指定CreationTime值的浏览器中录制一个step,但是在运行session的时候没有具有CreationTime值的浏览器打开,the step将会在具有最大CreationTime值的浏览器上运行。

下面这个例子:

SystemUtil.Run "iexplore.exe", "http://www.baidu.com"              'CreationTime 0

SystemUtil.Run "iexplore.exe", "http://www.google.com.hk/webhp?hl=zh-CN&sourceid=cnhp"     'CreationTime 1

SystemUtil.Run "iexplore.exe", "http://www.taobao.com"

 

wait(30)

Browser( "creationtime:=" ).Highlight

wait(30)

Browser( "creationtime:=1" ).Highlight

wait(30)

Browser( "creationtime:=2" ).Highlight

我不知道为什么设置第一个creationtime:=0时,Hight顺序就不正确了

TAG:

 

评分:0

我来说两句

日历

« 2024-03-23  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 11837
  • 日志数: 53
  • 书签数: 4
  • 建立时间: 2006-12-11
  • 更新时间: 2012-05-31

RSS订阅

Open Toolbar