1

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

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

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

4

1 回答 1

0

在 WPF 中,当控件名称属性具有值时,它对应于您将在诸如 Inspect.exe 之类的 UI 检查器工具中找到的 AutomationID。在此处查看有关automationID 的备注部分。因此,应用程序应该已经拥有大部分的自动化 ID。

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

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

包裹控制

WPF 自定义控件的 UI 自动化

在使用现有应用程序时,我通常只是在进行时填写控件的名称属性,因此对应用程序的更改量保持在最低限度。

于 2019-04-03T07:14:45.290 回答