UIA Verify显示按钮没有名称属性

时间:2015-09-21 07:15:18

标签: c# ui-automation white

我需要自动化工作流并尝试依赖teststack white和UIA Verify来查找另一个应用程序中的按钮。 然而,当我尝试识别按钮时,我只需要控制窗口内控件的空名称属性(参见附件截图)。 控件显然是Custom类型。

我希望能够按下按钮并在文本框中输入文本以及选中复选框。

有办法吗?我可以通过索引(例如按钮=窗口中的第三个控件)来访问它们吗?

Screenshot of UIA Verify, showing the empty controls

编辑:根据请求从inspect.exe截取 Screenshot of Inspect.exe

1 个答案:

答案 0 :(得分:2)

您是否介意使用Inspect.exe查看这些控件并发布适当的屏幕截图?您可能能够在其上找到另一个独特的属性来识别它。可以在C:\ Program Files(x86)\ Windows Kits \ 8.1 \ bin \ x64 \ inspect.exe中找到Inspect.exe。

使用White,您将无法获得所有按钮的集合,但使用原始ui自动化,您将能够使用FindAll获取AutomationElements的集合。

以下是如何获取某种类型的所有控件的示例。 Retrieve Multiple UIItems ByClassName

修改 因此,在查看来自inspect的更新映像后,我担心您尝试自动化的应用程序没有正确地将其应用程序暴露给ui-automation。我确信之前没有正确暴露,但我希望他们可能不小心暴露了一些属性。我之前已经看过这个用于VB6的一些第三方控件。可以使用上面链接的技术来获取名称为“”的所有控件,但是你必须使用边界矩形属性将鼠标移动到正确的位置并单击(如果该属性报告正确的话)因为我会摇摇晃晃invoke pattern不受支持。如果您可以访问源代码,则可以实现这些属性和模式。