识别 QTP 中 object 结构中的帧

Identify frame within the structure of an object in QTP

我正在基于 Web AUT 使用 QTP11。我的 OR 中有 objects。大多数 object 都在框架中。 AUT 的工作方式是每次呈现页面时,框架的 HTML ID 都会发生变化(这是我们唯一可以用来识别框架的 属性 )。这不是问题,因为每次进入页面时我都会动态更新框架的 HTML ID。 Objects一般是这样的格式:

Browser>Page>Frame>WebElement> and then the object

我正在获取 object 的祖父母(然后检查它是否是框架 class)以确定框架的位置。这并不总是有效,因为 object 具有不同的结构。有没有更有效的方法来识别框架 object 在结构中的位置,而不是仅仅在树上?

您可以继续攀登,而不是 hard-coding 您在层次结构中上升到 2 级(grand-parent),直到您达到 object 类型 Frame.

类似于:

Public Function GetAncestorOfType(ByRef testObj, ByRef name)
       While testObj.GetTOPRoperty("micclass") <> name
          Set testObj = testObj.GetTOProperty("parent")
       Wend
       Set GetAncestorOfType = testObj
End Function

' Usage:
Set frameObj = GetAncestorOfType(obj, "Frame")