[英]UI Automation's AutomationId inconsistency on different versions of windows
我正在使用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,因为当我浏览AutomationElement.RootElement
所有子级时,它找不到具有myAutomationId
值的元素,我发现AutomationId值是空的(这与我在Visual UI Automation Verify
上看到的不同,并且与当在Windows 7上运行)
我对AutomationId
属性缺少什么? 或关于UI自动化框架如何在Windows 10上运行?
编辑:
我注意到,当我遍历子元素时,我发现其中的一些元素具有一个AutomationId,其值为NativeWindowHandle的值。为什么?
编辑2:
我尝试了范围广泛的具有多个版本的UI自动化dll,但没有一个甚至无法在Windows 10上找到该应用程序。
TestStack.White
(在Windows 7上也不起作用)。
可以正常工作的UIA是UIAutomationClient.dll (如果需要,可以添加UIAutomationTypes.dll)
它直接使用自动化接口:
IUIAutomation uiautomation = new CUIAutomation();
等等...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.