c# - 为什么 Coded UI 无法识别某些控件?

标签 c# user-interface automation coded-ui-tests

在 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/

相关文章:

c# - 如何本地化 WinForms 中自定义控件中的字符串?

java - 如何将 JScrollPane 与 JTextArea 一起使用?

java - 如何使用 Cucumber/Selenium/Java 比较场景大纲示例中的值与实际页面上的实际值

ios - 使用 appium 访问 iOS 控制中心

testing - 是否有必要在所有浏览器上运行自动化脚本(例如 Selenium 脚本)?

C# NAudio : Recorded file wont play

Java 相当于 MD5CryptoServiceProvider computeHash & ToBase64String

c# - 创建包提交到 Windows Phone 8.1 商店时出错

java - 构建图形用户界面的规则

c++ - Qt Creator Options 选项卡等对话框的示例代码