我正在使用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值是空的(与我在{{ 1}},与在Windows 7上运行时得到的不一样
我缺少关于Visual UI Automation Verify
属性的东西吗?或关于如何
UI自动化框架可以在Windows 10上运行?
编辑:
我注意到,当我遍历子元素时,我发现其中的一些元素的AutomationId的值为NativeWindowHandle。为什么?
编辑2:
我尝试了范围广泛的具有多个版本的UI自动化dll,但没有一个甚至无法在Windows 10上找到该应用程序。
AutomationId
也是如此(在Windows 7上也不起作用)。
答案 0 :(得分:1)
可以正常工作的UIA是 UIAutomationClient.dll (如果需要,可以添加UIAutomationTypes.dll)
它直接使用自动化接口:
IUIAutomation uiautomation = new CUIAutomation();
以此类推...