跨现有应用程序设置自动化 ID



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

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

我已经用谷歌搜索过这个,但没有找到任何似乎可以做我想做的事的东西。也许我误解了结果。这篇文章似乎问了同样的问题,但我看不出提供的答案如何是一个合适的解决方案。

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

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

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

包装控件

WPF 自定义控件的 UI 自动化

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

最新更新