为什么编码的 UI 测试生成器显示 WPF 控件的 MSAA,而不是 UIA
-
25-09-2019 - |
题
问题
当我选择带有 Visual Studio 2010 编码 UI 测试生成器交叉线的 WPF 控件时(截图),表明所使用的无障碍技术是MSAA。为什么不是UIA?
附加信息
我正在尝试 VS2010 和 TFS2010 附带的新编码 UI 测试功能。
我知道微软基本上有两种 UI 可访问性技术:
- 微软主动辅助功能 (MSAA):较旧的技术,COM
- 微软用户界面自动化(UIA):较新的技术,.NET 3.0 的一部分,基于对象模型
当我创建编码 UI 测试并查看生成的代码时,我发现控件是根据像素位置单击的,而不是(我大胆期望的)真实对象的句柄。
我认为这种访问使得测试对于 UI 元素的重新定位更加脆弱。鉴于如果 UIA 发挥作用,测试会更加稳定;只要我不更改 UI 树,就不会破坏任何内容。
我做错了什么?
解决方案
它是 已知问题 与 Visual Studio 2010 Ultimate RC。
其他提示
关于原始问题中的“像素位置”注释。大多数时候不需要像素坐标。通过搜索屏幕上的控件层次结构来找到该控件。记录的坐标在控制范围内。这对于一些复杂的控制是必需的。例如。用于展开一组选项的带有三角形的按钮有两个可单击区域:主要区域和三角形。有关更多详细信息,请参阅此 MSDN 博客条目: http://blogs.msdn.com/b/mathew_aniyan/archive/2012/03/16/faq-why-are-we-using-coordinate-based-actions-in-coded-ui-test.aspx
不隶属于 StackOverflow