静态编程描述

相关项: GUI 操作、脚本化 GUI 组件和函数库

通过指定属性和属性值 (而不是指定对象名称),可以直接在语句中描述对象。

常规语法

通过指定属性名称和值对,直接在语句中描述对象。属性名称和值对以逗号分隔,并且每对必须用双引号括起。

使用以下语法指定对象描述的属性和属性值:

TestObject("PropertyName1:=PropertyValue1", "...", "PropertyNameX==PropertyValueX")
TestObject 测试对象类。
PropertyName:=PropertyValue

描述属性名称及其值。

如果您以此格式定义属性,则 UFT One 将属性值视为正则表达式。

要将某个特殊的正则表达式字符 (如 *?+) 包含为文字字符,请在该特殊字符前面添加 \ (反斜杠) 字符。

PropertyName==PropertyValue

描述属性名称及其值。

如果您以此格式定义属性,则 UFT One 将属性值视为文字字符串。

Example: 假设您正在 SAPUI5 应用程序中测试下表。两个版本之间的表对象名称不同。

在版本 1.71 中,表对象名称为 Products 。但是,在版本 1.96 中,表对象名称为 __table0

您想要编写一个在应用程序的两个版本上运行的脚本并执行以下操作:

为 Notebook Basic 15 设置新的产品 ID,然后选择所有行。

在这种情况下,您可以使用编程描述语法来指示 UFT Onedefault value 等于 HT-1000WebEdit 对象执行 Set 方法,并对名称与 Products 字符串或 __table0 字符串匹配的 SAPUITable 执行 SelectAll 方法。

Copy code
Browser("Samples - Demo Kit - SAPUI5").Page("Samples - Demo Kit - SAPUI5").WebEdit("default value==HT-1000").Set "abc"
wait 2
Browser("Samples - Demo Kit - SAPUI5").Page("Samples - Demo Kit - SAPUI5").SAPUITable("name:=(Products)|(__table0)").SelectAll

UftIsRegex 属性

在为测试对象编写描述时,您可以指示 UFT One 将对象的所有指定属性值视为文字字符串。使用 PropertyName:=PropertyValue 对来创建对象描述。然后添加 UftIsRegex 属性并将其值设置为 False

例如,当运行以下语句时,UFT One 找到名称为 username 且类型为 text 的 WebEdit 对象,并在该对象中输入 tutorial

Copy code
Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("name:=^username""type:=text", "UftIsRegex:=false").Set "tutorial"

UftIsRegex 属性适用于对象描述的所有属性值。

使用 PropertyName:=PropertyValuePropertyName==PropertyValue 对,您可以创建更灵活、更准确的描述。

返回页首

变量

如果要基于在测试运行期间检索到的属性值查找对象,则可以输入变量名称作为属性值。例如:

MyVar="some text string" 

Browser("Hello").Page("Hello").Webtable("table").Webedit("name:=" & MyVar)

返回页首

查找父测试对象

从测试对象层次结构中的某特定点开始使用编程描述时,必须在同一语句中从该点开始将编程描述一直使用下去。在已使用编程描述指定了层次结构中的父对象之后,如果按对象存储库名称指定测试对象,则 UFT One 无法识别该对象。

例如,请使用:

  • 父对象的对象存储库名称,以及对其执行相应操作的对象的编程描述:

    Browser("Advantage Shopping").Page("Advantage Shopping").WebEdit("name:=username", "type:=text").Set "tutorial"
  • 整个测试对象层次结构的编程描述:

    Browser("Title:=Advantage Shopping").Page("Title:=Advantage Shopping").WebEdit("name:=username", "type:=text").Set "tutorial"
  • 描述中某一处的编程描述 (从 Page 对象描述开始):

    Browser("Advantage Shopping").Page("Title:=Advantage Shopping").WebEdit("name:=username", "type:=text").Set "tutorial"

请勿使用 Browser 和 Page 对象的编程描述,而是尝试使用 WebEdit 测试对象的对象存储库名称:

Browser("Title:=Advantage Shopping").Page("Title:=Advantage Shopping").WebEdit("username").Set "tutorial"

返回页首

描述图像识别测试对象

要描述洞察测试对象,请指定 ImgSrc 属性,并用 PropertyValue 提供控件图像的文件系统路径或 ALM 路径。(要指定位于 ALM 测试资源或 ALM 测试计划模块的文件的 ALM 路径,请输入: [ALM\Resources] Resources\<文件夹和文件名> 或 [ALM]Subject\<文件夹和文件名>)。

下面的语句使用 C:\AllMyFiles\Button6.bmp 文件中的图像在“计算器”窗口中指定一个 InsightObject 测试对象。该文件包含 6 按钮的图像。在测试运行期间,UFT One 在计算器上查找相似于此图像的区域并单击其中心。

Window("Calculator").InsightObject("ImgSrc:=C:\AllMyFiles\Button6.bmp").Click

对洞察测试对象使用编程描述时,请注意以下事项:

  • 描述只能包含 ImgSrc 属性(必需)和序号标识符属性(可选)。

  • 描述不能包含正则表达式。

  • 包含控件图像的文件(在 ImgSrc 属性中指定):

    • 必须是支持 24 或 32 位/像素的非压缩图像文件 (JPEG、BMP 或 PNG)。

    • 必须可从运行测试或组件的任何计算机中访问。

  • 在使用编程描述定义的洞察测试对象上运行 Click 方法时,UFT One 在匹配指定图像的控件中心单击。

返回页首