我正在尝试使用 MS UI 自动化来测试 WPF 应用程序,并使用 Windows SDK 中包含的检查对象工具 (inspect.exe) 来查找某些元素的 AutomationId 属性。
检查对我来说很奇怪:
我已经尝试按照 https://stackoverflow.com/a/7833728/44737 中的建议正常和以管理员身份运行检查,并且它的行为方式相同。
如果有的话,我做错了什么?我是不是太不耐烦了,我是否需要等待很长时间而不是假设检查已挂起?为什么检查关于 AutomationId 的行为会有所不同?
最佳答案
Inspect.exe 有多个版本。据我所知,最新的是 2012 年的那个,它在帮助/关于对话框中显示了 7.2.0.0 版。
旧版本的左侧没有 TreeView ,所有检测到的自动化元素都显示在树中,因此很容易检查您使用的是正确的。
最新的工作非常正确,但是,恕我直言,迄今为止使用 UI 自动化的最佳工具是 Visual UI Automation Verify .这是一个 .NET 程序,其源代码可在此处获得:
UI Automation Verify (UIA Verify) Test Automation Framework .
请注意,虽然它是一个 .NET 程序,但它不使用标准的 .NET 自动化 dll(更多信息请点击此处:What's the difference of UISpy.exe and Inspect.exe? (From Microsoft Windows SDK))。
关于AutomationId属性,为了澄清我对这个问题的初步评论,我的意思是它的有用性取决于您尝试自动化的程序。
如果您作为开发人员拥有它,那显然很有趣。例如,如果您正在使用 WPF,则可以使用 x:Uid
属性,它显然是用于 UI 自动化。在 Winforms 领域,它也非常有用,因为 UI 自动化将使用控件的 AccessibleName默认情况下并恢复到 Name作为后备,AutomationId 值。
但是有很多不依赖.NET 的应用程序(浏览器、原生应用程序等)通常,对于这些应用程序,使用其他属性会更容易。
关于wpf - 为什么 Inspect.exe 会频繁挂起且显示的 AutomationId 不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876768/