【问题标题】:Help getting QTP to identify a control帮助获取 QTP 以识别控件
【发布时间】:2023-05-23 08:18:01
【问题描述】:

我们正在尝试使用 QTP(QuickTest Professional)自动测试旧版 C++ 应用程序。

但是,应用程序的主窗口由几个相同的面板组成。每个面板都有一个唯一的标题。

如果我在 Spy++(DevStudio 附带)中查看窗口,我会看到:

+ Window <hwnd> "Window Title" taskwindowclass
  + Window <hwnd> "Panel A" childwindowclass
    + Window <hwnd> "OK" Button
  + Window <hwnd> "Panel B" childwindowclass
    + Window <hwnd> "OK" Button

然而,在 QTP 的 Object Spy 中,层次结构显示为:

+ Window: Window Title
  + WinButton: OK

它甚至没有显示有一个中间面板。

有人知道获取窗口“路径”以识别每个控件的方法吗? 即控制标识为:

Button A: "Window Title/Panel A/OK"
Button B: "Window Title/Panel B/OK"

【问题讨论】:

    标签: c++ qtp hwnd


    【解决方案1】:

    您可以使用描述性编程来绕过对象映射。 QTP 默认会忽略面板对象。您可以尝试动态获取对面板对象的引用,然后搜索 ChildObjects 集合以找到确定按钮。另一种选择可能是简单地将序号标识符添加到确定按钮。

    • 按钮 A:“窗口标题/确定索引 #1”
    • 按钮 B:“窗口标题/确定索引 #2”

    【讨论】: