在 Web 应用程序中,我注意到编码 UI 无法以与普通 html 控件相同的方式捕获某些类型的控件,这抑制了我对这些元素进行数据驱动的能力。
这些控件的一些示例是 Telerik Ajax 控件以及 Ideal Forms,这是一个类似于 bootstrap 的 js 框架。
导致编码 UI 与这些类型的控件之间不兼容的原因是什么?除了替换应用程序的控件之外,是否有任何解决方法?
最佳答案
编码的 UI 使用 MSAA(Microsoft Active Accessibility)或 UIA(UI Automation)界面访问应用程序。最初提供这些界面是为了让视力受损的人可以使用屏幕阅读器等程序,或者为行动不便的人使用其他形式的键盘和鼠标。编码的 UI 使用这些接口(interface)并以与这些程序驱动应用程序相同的方式驱动应用程序。
应用程序的 UI 控件必须编写为支持 MSAA 或 UIA。几乎所有最近的 Microsoft 控件都支持这些接口(interface),对较旧的接口(interface)(如 MFC 和 Win32)的支持有限。除非实现 MSAA 或 UIA 接口(interface),否则不支持自定义控件。一些第三方自定义控件不支持这些接口(interface)。查看他们的支持页面,查看不同版本支持的编码 UI 级别。
许多第三方控件的最新版本支持编码 UI。
关于c# - 为什么 Coded UI 无法识别某些控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20149485/