0

我正在使用 UI 自动化框架(.net 4.6.1)自动化应用程序。

在使用Visual UI Automation Verify我检查应用程序时,我能够看到AutomationId属性的值。

我用 C# (wpf) 编写了一个小型自动化脚本

当我在 Windows 7 上执行我的自动化脚本时,一切正常。

当我在 Windows 10 上尝试时,所有 AutomationId 值都是空字符串。

示例代码:

AutomationElement.RootElement.FindFirst (
  TreeScope.Descendants, 
  new PropertyCondition(AutomationElement.AutomationIdProperty, myAutomationId)
);

此示例返回 null,因为它找不到具有myAutomationId值的元素,当我探索所有子项时,AutomationElement.RootElement我发现 AutomationId 值为空(与我在 上看到的Visual UI Automation Verify不同,也与在 Windows 7 上运行时得到的不同)

我对AutomationId属性有什么遗漏吗?或者关于 UI 自动化框架如何在 Windows 10 上运行?

编辑:

我注意到,当我遍历子元素时,我发现其中一些元素的 AutomationId 具有 NativeWindowHandle 的值。这是为什么?

编辑2:

我已经尝试了非常广泛的具有多个版本的 UI 自动化 dll,甚至都无法在 Windows 10 上找到该应用程序。

同样的事情TestStack.White(也不适用于Windows 7)。

4

1 回答 1

1

可以正常工作的 UIA 是UIAutomationClient.dll (如果需要,+ UIAutomationTypes.dll)

它直接使用自动化接口:

IUIAutomation uiautomation = new CUIAutomation();

等等...

于 2019-07-16T22:40:00.250 回答