UFT/QTP -找不到对象父对象



我无法访问我的测试用例中的对象。对象是一个选项卡,附加到(子)窗口在我的应用程序。在测试用例之前和之后,选项卡和选项卡所附加的窗口都可以被对象spy找到,但是当测试用例运行时,下面的错误出现了。

找不到"[ActiveX]"对象的父类"[Window]"(类Window)。验证父属性是否与应用程序中当前显示的对象匹配。

我访问对象,所以:

VbWindow("ApplicationWindow").Window("SubWindow").ActiveX("Tab")

我是新的UFT,所以我搜索了一段时间,找到了一些解决方案,但他们似乎不适合我,因为他们总是与浏览器测试,而不是应用程序。

警告:下面是冗长的解释,您可以跳到最后一段,以获得建议的快速获胜


当UFT从上到下识别对象时,您的对象层次结构是:

VbWindow("ApplicationWindow").Window("SubWindow").ActiveX("Tab")

UFT说:

找不到"[ActiveX]"对象的父类"[Window]"(类Window)。

这意味着id可以找到VbWindow("ApplicationWindow"),但不能找到Window("SubWindow")。尝试突出显示VbWindow,以确保UFT正在识别您期望的对象。然后使用对象间谍来检查您认为UFT应该找到的窗口。然后将对象存储库中的属性与您看到的窗口中的属性进行比较,找出这些描述的不同之处。

作为一种快捷方式,您可以尝试使用维护运行模式,它应该为您执行这些步骤并建议修复测试的方法。

只是想找出问题的根本原因。

1。尝试使用顶级容器(跳过下一级容器)并检查是否存在父容器。

VbWindow("ApplicationWindow").ActiveX("Tab")

2。检查前后的属性。我指的是并排验证。可能存在属性不匹配的可能性。

3。使用刷新对象方法。

Window("Calculator").RefreshObject

4。从Tab对象查询父对象

Set objParent =  VbWindow("ApplicationWindow").ActiveX("Tab").GetTOProperty("parent")
Msgbox objParent.GetROProperty("text")
Set objParent =  VbWindow("ApplicationWindow").Window("SubWindow").ActiveX("Tab").GetTOProperty("parent")
Msgbox objParent.GetROProperty("text")

最新更新