动态编程描述
相关项: GUI 操作、脚本化 GUI 组件和函数库
可以使用 Description 对象返回包含一组 Property 对象的 Properties 集合对象。Property 对象由属性名称和值组成。然后可以在语句中指定返回的 Properties 集合来代替对象名称。 (每个属性对象包含属性名称和值对。)
创建属性集合
要创建 Properties 集合,使用以下语法输入 Description.Create 语句:
Set MyDescription = Description.Create()
在已经创建 Properties 对象 (比如上例中的 MyDescription) 之后,可以输入语句以在运行会话期间为 Properties 对象添加、编辑、删除和检索属性和值。这使您能够确定在运行会话期间在对象描述中动态包含哪些以及多少属性。
用一组 Property 对象 (属性和值) 填充 Properties 集合之后,可以在语句中指定代替对象名称的 Properties 对象。
例如,并不是输入:
Window("Error").WinButton("text:=OK", "width:=50").Click
可以输入:
Set MyDescription = Description.Create()
MyDescription("text").Value = "OK"
MyDescription("width").Value = 50
Window("Error").WinButton(MyDescription).Click
使用 Properties 对象时,可以将变量名称用于属性或值,以根据在运行会话期间检索到的属性和值生成对象描述。
如果要为几个对象使用编程描述,则可以创建几个 Properties 对象。
有关 Description 和 Properties 对象及其关联的方法的详细信息,请参阅《UFT One Object Model Reference for GUI Testing》的 Utility Objects 部分。正则表达式和编程描述
默认情况下,添加到 Properties 集合中的所有 Property 对象值都被视为正则表达式。因此,如果要输入包含特殊正则表达式字符 (比如*、?、+) 的值,则使用 \ (反斜杠) 字符指示 UFT One 将特殊字符视为文字字符。有关正则表达式的详细信息,请参见正则表达式。
可以将 RegularExpression 属性设置为 False 以在集合中将值指定为特定 Property 对象的文字值。有关详细信息,请参见《UFT One Object Model Reference for GUI Testing》 的实用程序对象 (Utility Objects) 部分。编程描述和对象层次结构
从测试对象层次结构中的某特定点开始使用编程描述时,必须在同一语句中从该点开始将编程描述一直使用下去。在已使用编程描述指定了层次结构中的其他对象之后,如果按对象存储库名称指定了测试对象,则 UFT One 无法识别该对象。
例如,可以使用 Browser(Desc1).Page(Desc1).Link(desc3),因为它在整个测试对象层次结构中使用编程描述。
还可以使用 Browser("Index").Page(Desc1).Link(desc3),因为它在描述中的某一点开始使用编程描述 (从 Page 对象描述开始) 。
但您不能使用 Browser(Desc1).Page(Desc1).Link("Example1"),因为它对 Browser 和 Page 对象使用编程描述,但随后尝试对 Link 测试对象使用对象存储库名称 (UFT One 尝试根据名称找到 Link 对象,但无法在存储库中找到它,因为父对象是使用编程描述指定的) 。