【问题标题】:Retrieve toolstripbutton using UIAutomation使用 UIAutomation 检索工具条按钮
【发布时间】:2018-10-17 19:40:21
【问题描述】:

在 windows 窗体上使用 UIAutomation,我试图在特定窗体上检索鼠标下的任何控件。 目标是处理应用程序的控件,检索它们并对其进行操作。

我多次面临的问题是我找不到工具条按钮。 每次我得到一个窗格时(不是我想要的工具条按钮的父级或子级,而是父级的兄弟姐妹)。

这是我要检索的工具条按钮:。

相同的控件,但在 Inspect.exe 中(突出显示:我得到的控件):

虽然这是因为控件的 z 顺序,但我尝试使用同级控件,用于其边界包含鼠标的控件(以获取光标下的所有控件,无论如何它们的 z 顺序)。 失败是因为未检索到工具条按钮。

我目前使用 UIAutomation 而不是 CodedUI,因为我需要运行一个自定义程序来检索控件并在特定服务器上执行自动测试,但我实际上在我的机器上安装了 Visual Studio Enterprise 2017 许可证,但还有第二个许可证(用于服务器)和与我一起工作的同事的第三个许可证会有点贵。

记住程序必须动态检索鼠标下的控件,有人可以给我任何可以帮助我深入调查的想法吗?

感谢和问候

使用方法:

var aimed = AutomationElement.FromPoint(new System.Windows.Point(Cursor.Position.X, Cursor.Position.Y));

【问题讨论】:

    标签: c# microsoft-ui-automation


    【解决方案1】:

    通过解决方法解决。

    我创建了一种递归方法,可以在子项中更深入地搜索包含鼠标的控件(BoundingRectangle.Contains` 方法)。 这样,我可以在工具条中找到控件。

    AutomationElement.FromPoint 方法不在工具条内搜索。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多