序号标识符
相关项: GUI 测试和组件
UFT One 将使用序号标识符在多个相同对象中唯一标识特定对象。
概述
除了识别“对象标识”对话框中指定的必要和辅助属性之外,UFT One 还可以识别每个测试对象的备份序号标识符。序号标识符向对象分配一个数字值,用于指示其相对于其他描述都相同的其他对象(强制和辅助属性列表中指定的所有属性具有相同值的对象)的顺序。当必要和辅助属性不足以创建唯一描述时,此顺序值使 UFT One 能够执行该操作。
分配的序号属性值是相对值,且仅在相对于 UFT One 识别对象时显示的其他对象时才是准确的。因此,即使对象自身未以任何方式更改,布局中的变更或者应用程序页面或屏幕的合成可导致该值更改。出于此原因,仅当 UFT One 无法使用所有可用的必要和辅助属性创建唯一描述时,它才识别此备份序号标识符的值。
此外,即使 UFT One 识别了某个序号标识符,它也仅在以下情况下于测试运行期间使用该标识符:
-
识别的描述和“智能标识”机制不足以标识应用程序中的对象。
-
没有为测试对象定义可视关系标识符。有关详细信息,请参阅 可视关系标识符。
索引标识符
识别对象时,UFT One 可以将值分配给测试对象的 Index 属性以唯一标识该对象。该值基于对象出现在源代码中的顺序。第一次出现是 0。
Index 属性值特定于对象。因此,如果使用 Index:=3 描述 WebEdit 测试对象,则 UFT One 会在页面中搜索第 4 个 WebEdit 对象。但是,如果使用 Index:=3 描述 WebElement 对象,则 UFT One 在该页面上搜索第 4 个 Web 对象而不管其类型是什么,因为 WebElement 对象适用于所有 Web 对象。
例如,假设某页面中包含以下对象:
-
名称为 Apple 的图像
-
名称为 UserName 的图像
-
名称为 UserName 的 WebEdit 对象
-
名称为 Password 的图像
-
名称为 Password 的 WebEdit 对象
以下语句引用列表中的第三项,因为这是该页面上名称为 UserName 的第一个 WebEdit 对象:
WebEdit("Name:=UserName", "Index:=0")
与之相比,以下语句引用列表中的第二项,因为这是名称为 UserName 的任何类型 (WebElement) 的第一个对象:
WebElement("Name:=UserName", "Index:=0")
位置标识符
识别对象时,UFT One 可以将值分配给测试对象的 Location 属性以唯一标识该对象。该值基于对象相对于具有相同属性的其他对象出现在窗口、框架或对话框中的顺序。第一次出现该对象时为 0。值在列中的分配顺序是从上到下且从左到右。
在以下示例中,对话框中的单选按钮按其 Location 属性编号:
Location 属性值特定于对象。因此,如果使用 Location:=3 描述 WinButton 测试对象,则 UFT One 将在页面中从上到下且从左到右搜索第 4 个 WinButton 对象。但是,如果使用 Location:=3 描述 WinObject 对象,则 UFT One 将在页面中从上到下且从左到右搜索第 4 个标准对象,而不管其类型为何,因为 WinObject 对象适用于所有标准对象。
创建时间标识符
识别浏览器对象时,UFT One 会将值分配给 CreationTime。该值指示浏览器相对于其他打开浏览器的打开顺序。打开的第一个浏览器接收值 CreationTime = 0。
在运行会话期间,如果 UFT One 无法仅仅基于测试对象描述识别浏览器对象,它将检查浏览器的打开顺序,然后使用 CreationTime 属性识别正确的浏览器。
Example: 例如,如果 UFT One 识别在晚上 9:01、9:03 和 21:05 打开的三个浏览器,则 UFT One 将分配 CreationTime 值,如下所示: CreationTime =0 分配给早上 9:01 的浏览器,CreationTime =1 分配给早上 9:03 的浏览器,CreationTime = 2 分配给早上 9:06 的浏览器。
在晚上 10:30,对这些浏览器对象运行测试或组件时,将假设在晚上 10:31、10:33 和 22:34 打开了这些浏览器。UFT One将识别这些浏览器,如下所示: 晚上 10:31 的浏览器用 CreationTime = 0 的 Browser 测试对象标识,晚上 10:33 的浏览器用 CreationTime = 1 测试对象标识,晚上 10:34 的浏览器用 CreationTime = 2 测试对象标识。
如果在具有特定 CreationTime 值的 Browser 对象上创建了一个步骤,但在运行会话期间,没有具有该 CreationTime 值的打开浏览器,则该步骤将在具有最大 CreationTime 值的浏览器上运行。例如,如果在具有 CreationTime = 6 的 Browser 对象上创建了一个步骤,但在运行会话期间只有两个打开的浏览器,分别具有 CreationTime = 0 和 CreationTime = 1,那么该步骤在打开的最后一个浏览器上运行,在此示例中,是具有 CreationTime = 1 的浏览器。
备注: 在会话期间内的特定时间,可用的 CreationTime 值可能不是顺序的。例如,如果录制或运行会话期间打开了 6 个浏览器,然后在该会话期间关闭了第 2 个和第 4 个浏览器(CreationTime 值为 1 和 3),那么在会话结束时,打开的浏览器将是具有 CreationTime 值 0、2、4 和 5 的浏览器。