gpt4 book ai didi

c++ - MFC 资源 ID 和 Squish

转载 作者:行者123 更新时间:2023-11-30 04:46:13 28 4
gpt4 key购买 nike

我正在尝试使用 Squish 自动执行一些 GUI 测试,但在 Squish 中不断遇到 MFC 资源 ID 问题。

我像这样创建一个静态标签:

CStatic m_Status;
m_Status.Create("", WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFT,
mCfg->rectStatus(), this, 42);
m_Status.SetWindowText("42 is the answer");

当我用 Squish 监视这个标签时,我得到的是:

{"container": o_Pane, "text": "42 is the answer", "type": "Label"}

但是,没有ID。随着文本的变化,仅根据文本匹配元素并不是最优的。

在同一程序中,其他标签是通过资源管理器向导创建的。对于这些标签,Squish 能够获取资源 ID 并设置正确的“nativeObject”属性。

是否有一些方法可以使在源代码中创建的 CStatic 对象也对 Squish 正确可见,如果可能的话使用 nativeObject 属性?

最佳答案

Spying可用于检查 object properties .一旦您知道 Squish 看到了哪些属性,您就可以使用 Squish 对象真实名称中的属性及其值来识别所需的对象。

但是,由于未编译 Squish 的 MFC 支持,它通常无法访问此类 ID,因为它通过窗口消息传递获取有关 MFC 控件的所有信息。

这些 ID 可能是通过 UI 自动化公开的。检查 Inspect如果是这样的话。如果是这样,请尝试通过 Squish 的 UI 自动化支持来识别该对象。为此,将 SQUISH_DIR\lib\extensions\win\uiautomation.ext 中的优先级更改为高于 SQUISH_DIR\lib\extensions\win\mfc.ext 中的优先级,使用新的测试套件(用于良好的测量和测试),启动来自 Squish 的 AUT,选择对象并查看是否看到不同的对象属性,以及 nativeObject 属性是否为非空(为空/空意味着 MFC 支持正在提供对该对象的访问)。

关于c++ - MFC 资源 ID 和 Squish,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56888820/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com