我正在尝试为C ++ MFC应用程序自动化UI交互。我试图使用UISpy和UIAVerify工具找到元素的自动化ID。我在win2k3上。
有一个标签控件,其自动化ID对UISpy可见,但对UIAVerify不可见。
问题是 - 即使我使用Project White框架或.net 3.0的ui自动化框架编写的C#代码也看不到它。
我想以UISpy获取它的方式处理这种控制。有什么方法可以找出UISpy是如何做到的吗?
感谢!!!
答案 0 :(得分:0)
UISpy可能会使用Microsoft UI Automation。您可以从this example*了解其工作原理。您可以使用AutomationElement上的各种条件来定位它们。
我只使用过WPF标签,但发现很难通过Automation Id找到它们。相反,我一直在使用AutomationName
属性,选项卡上的标题作为值。不确定White是否支持此功能,但我很确定您可以获取原始AutomationElement
并按照示例使用它。
你也可能正在寻找支持SelectionItemPattern
的东西(有一个SelectionItemIsSupportedProperty
),你需要使用该模式选择标签并让它激活才能看到其中的任何内容。
如果您需要更多信息,请发表评论。了解带有标签的容器的结构可能会有所帮助。
*自我写这篇文章以来感兴趣的声明。