QTP - 序数标识符
有时,会有一系列具有相同类名和属性的对象。假设,在一个窗口中,有一系列具有相同属性集的复选框。如果我们想对这些对象采取行动,我们需要唯一地标识它们,以便 QTP 能够对其采取行动。
序数标识符为测试对象分配一个数值,该数值指示其相对于其组的位置或顺序。当内置属性不足以识别它时,Ordered 值可使 QTP 唯一地识别它。
QTP 中有三个序数标识符,可用于不同的上下文 −
- 索引
- 位置
- 创建时间
索引
与同一页面/窗口中较晚出现的另一个对象相比,页面/窗口中首先出现的对象的索引值较小。
文本框组的索引值如下 −
对象名称 | 索引值 |
---|---|
TextBox 1 | 0 |
TextBox 4 | 1 |
TextBox 2 | 2 |
TextBox 5 | 3 |
TextBox 3 | 4 |
TextBox 6 | 5 |
Location
Location 属性从上到下、从左到右垂直工作。因此,对于相同情况,文本框组的 location 值将如下所示 −
对象名称 | 索引值 |
---|---|
TextBox 1 | 0 |
TextBox 2 | 1 |
TextBox 3 | 2 |
TextBox 4 | 3 |
TextBox 5 | 4 |
TextBox 6 | 5 |
创建时间
创建时间属性仅适用于基于 Web 的应用程序。当我们打开同一网站的两个浏览器会话时,QTP 将无法识别该窗口,因为两个窗口都具有相同的属性集。因此,我们可以使用 QTP 能够对窗口执行操作的创建时间。
'将具有 CreationTime 值 = 0 SystemUtil.Run "iexplore.exe", "http://www.google.com" '将具有 CreationTime 值 = 1 SystemUtil.Run "iexplore.exe", "http://www.yahoo.com" '将具有 CreationTime 值 = 2 SystemUtil.Run "iexplore.exe", "http://www.microsoft.com" '将具有 CreationTime 值 = 3 SystemUtil.Run "iexplore.exe", "http://www.facebook.com"
因此,要在特定浏览器上工作,我们需要在 OR 中明确提及创建时间,或者我们可以使用对象的描述,我们将在描述性编程部分中详细介绍。
'同步 www.google.com Browser("creationtime:=" ).Sync '获取 www.yahoo.com 的 RO 文本属性 Browser("creationtime:=1").GetROProperty("text") '突出显示 microsoft.com Browser("creationtime:=2").Highlight