在现有应用程序中设置automationID

问题描述 投票:1回答:1

如果我有一个现有的WPF应用程序,并且我想将自动化ID分配给未设置它们的整个应用程序,那么有什么好办法(对于没有动态添加的控件)?某种脚本遍历所有xaml文件并添加了automationIDs?

我的目标是使用winappdriver编写ui测试。

我用Google搜索了这个,但没有找到任何似乎做我想要的东西。也许我误解了结果。 This post似乎问了同样的问题,但我没有看到答案提供的是一个合适的解决方案。

wpf xaml ui-automation winappdriver
1个回答
0
投票

在WPF中,当控件名称属性具有值时,这与使用UI检查器工具(如Inspect.exe)找到的AutomationID相对应。看看有关automationID here的备注部分。因此,应用程序应该已经具有大部分自动化ID。

唯一一次我没有控件的automationID是在代码中创建控件的时候。调整XAML的脚本在这里没有帮助,因为这些控件不会有XAML。即使您使用了脚本,也不能确保所有自动化ID都可用。

使用第三方控件时,AutomationId的可用性取决于支持与否的第三方。如果它们不支持AutomationId,则可以将该控件包装在自定义控件中,并以这种方式公开AutomationID。以下是一些可能有用的资源:

wrapped control

UI automation of a WPF Custom Control

在使用现有应用程序时,我通常只会在控件中填写控件的name属性,因此应用程序的更改量保持最小。

© www.soinside.com 2019 - 2024. All rights reserved.