在开始本练习之前,您必须先完成练习 1.9:更改识别首选项。
我们要使用对象图完成的最后一个事项是将属性值转换成正则表达式。在这种情况下,正则表达式允许更灵活地进行对象识别。
我们刚才看到,脚本是如何对 ClassicsB 完全通过的。那是我们的目标,因为在 ClassicsB 中对应用程序所作的更改是正确的。因此,脚本现在所处的状态是我们希望继续保持的状态。现在,当您对 ClassicsA 回放脚本时,会由于前面所作的更改而失败。您可能希望允许某一对象的多个变异体通过测试。您可能拥有一个动态对象,或者拥有应用程序的几个版本以及某一对象的略微不同的多个版本,这两者都是正确的。您可以使用正则表达式来容纳某一属性值的多个版本(例如文本),以适应这种场景。
在回放期间,Functional Test 在密码复选框对象处暂停少许时间,但最终还是完成了。
现在脚本给出一个警告。请注意,在脚本中是同一个对象,即密码复选框。
统一后的对象显示在统一测试对象属性网格(顶部窗格)中;name 属性的值为“checkRemember”。
功能测试通过在值文本前面放置“xy”图标,将值指定为正则表达式。
[rR]emember
该模式允许单词“remember”在具有大写“R”或小写“r”时都能通过。这很重要,因为比较操作是区分大小写的,仅在完全匹配时才能通过。
accessibleName 属性的值为“Remember Password”。
Remember.*Password
除去空格并添加句号(.)和星号(*)字符。
“.”允许任一字符出现在该位置。在应用程序的一个版本中,该属性的两个单词之间存在空格,而在其它版本中没有空格。该模式对于两种情况都适用。
现在这里出现了有趣的一幕!
关于 ClassicsA 的对象识别警告不再出现在日志中。
对象识别对 ClassicsB 也通过!正则表达式允许更灵活地识别在应用程序的不同版本中具有不同属性的对象,在回放期间两者都能识别。关于正则表达式的更多信息,请参阅 Functional Test 帮助。
复审摘要中的资料,完成您的教程。