代码之家  ›  专栏  ›  技术社区  ›  TheBlastOne

为什么Page.GetTOProperty(“index”)返回的值高得离谱,而empty才是正确的值?

  •  1
  • TheBlastOne  · 技术社区  · 7 年前

    我用Page.GetTOProperty方法观察到一件奇怪的事情。复制步骤:

    • 打开一个IE浏览器实例并导航到google.com(或任何其他网站,这无关紧要)
    • 使用object spy将页面testobject添加到基于操作的对象存储库(“或”)。提供时,不要添加任何“子代”(应为“子代”)对象(除非浏览器在添加页面时自动添加)
    • 关闭浏览器实例(或者不关闭,这似乎无关紧要)
    • 粘贴此脚本代码:

      IndexPropVal=浏览器(“谷歌”).Page(“谷歌”).GetTOProperty(“索引”) 打印“IndexPropVal=”&CSTr(IndexPropVal)和;“IsEmpty=”&CStr(IsEmpty(IndexPropVal))

    问题:

    在某些情况下是10002,在其他情况下是20002或30002,原因不明。

    • 为什么不打印这个:

      IndexPropVal=IsEmpty=true

    变化(10002对20002对30002)可能取决于测试对象是否基于对象,和/或脚本在某种程度上是组件还是GUI操作脚本,但情况似乎并非总是如此。

    无论您是否全局打开或关闭智能标识,或是否为每个个人或条目(即浏览器或条目,以及页面或条目)打开或关闭智能标识,都无关紧要。

    我找不到任何可复制的依赖项!

    我在UFT14.50中观察到了这一点。

    如果对象存储库中没有定义索引属性,我确信UFT 12.03正确地用于报告空值。

    发生了什么事?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Motti    7 年前

    因为总是只有一个 Page 对象 Browser 对象索引是无意义的,如果描述为空或适合,则只有一个匹配项,如果描述不匹配,则没有匹配项。像 index 是顺序选择器,仅在多个对象与描述匹配时使用,对于 测试对象。

    指数 属性,您不应该使用它,也不应该影响您的测试。