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

qtp_object_repository.html