我使用UI自动化来自动化WPF应用程序的测试,并且遇到Window元素的 AutomationId 属性的奇怪行为。我在XAML中为Window元素指定了 x:Uid 属性,其值为'Window_1'。我希望 AutomationId 是“ Window_1” 。但事实并非如此。 AutomationId的值可以为空''或等于期望值。这不是确定性的。但是 Inspect.exe 始终显示AutomationId设置为“ Window_1” 。如果我在XAML中明确指定 AutomationProperties.AutomationId ,它也不起作用。
有关我的申请的一些信息。它是一个控制台应用程序,但可以使用Dispatcher.Run运行WPF UI。我使用 TreeWalker.RawViewWalker 和 AutomationElement.Current.AutomationId 在自动化测试中找到所需的元素。
所以,我的问题是UI自动化如何设置元素的AutomationId的值?为什么指定Uid不起作用,为什么指定AutomationProperties.AutomationId起作用呢?