我一直在尝试使用 C# 自动化 Windows 程序。使用 Windows Kits (SDK) 中的 Inspect.exe 后,我尝试使用的许多元素似乎没有静态 AutomationID、元素名称等。问题是这些元素可能具有相同的属性与 WPF 同一窗格中的其他元素一样,因此我试图找出确定所需元素的最佳方法。
克服这个问题的最佳方法是什么?
我查看了 Windows UIAutomation 库以及 TestStack.White,但我愿意接受建议。
笔记:
- 该程序安装在客户端计算机上。
- 使用 Spy++,它不会在 WPF 中找到元素,而只会找到元素所在的父容器。
- 我在我的开发机器(Windows 10)上安装了 Windows 应用程序驱动程序(和 UI 记录器),但我试图自动化的程序驻留在 Windows 8.1 上,WAD 似乎不支持它。(如果我错了,请纠正我。)
- 使用 WAD UI Recorder,我可以获得元素的 XPATH。
- BoundingRectangle 属性似乎会根据窗口的大小而变化,目前与该程序一起工作的第 3 方自动化程序似乎间歇性地以不同大小显示窗口。