我正在用Page.GetTOProperty方法观察到一个奇怪的事情。重现步骤:
粘贴此脚本代码:
Dim IndexPropVal IndexPropVal = Browser(“ Google”)。Page(“ Google”)。GetTOProperty(“ index”) 打印“ IndexPropVal =”&CSTr(IndexPropVal)&“ IsEmpty =”&CStr(IsEmpty(IndexPropVal))
运行脚本
问题:
为什么会输出以下内容?
IndexPropVal = 20002 IsEmpty = False
在某些情况下为10002,在其他情况下为20002或30002,其原因未知。
为什么不打印此:
IndexPropVal = IsEmpty = true
这是我期望的,因为对于未在OR中定义的所有TO属性,GetTOProperty应该返回空吗?
变体(10002与20002与30002)可能取决于测试对象是否在基于对象的OR中,和/或脚本在某种程度上是组件还是GUI操作脚本,但这并不似乎并非总是如此。
它无疑与运行脚本的频率或运行之间关闭UFT无关。
无论您是全局打开还是关闭智能标识,还是对于每个单独的OR条目(即浏览器OR条目和页面OR条目),都没有关系。
我找不到任何可复制的依赖项!
我在UFT 14.50中首先观察到这一点。
如果在对象存储库中未定义索引属性,我确定UFT 12.03可正确用于报告Empty值。
发生了什么事?
答案 0 :(得分:1)
由于每个Page
对象始终只有一个Browser
对象,因此索引是没有意义的,如果描述为空或合适,则存在一个匹配项,如果描述不匹配,则不存在匹配项。由于index
是一个序数选择器,仅在多个对象与一个描述匹配时才使用,因此它对Page
测试对象没有用。
UFT似乎正在使用index
属性进行内部整理,您不应使用它,也不会影响测试。