当前位置 博文首页 > haimianjie2012的专栏:UI自动化规范:UI Automation Specificat
目录
简介
UI 自动化元素
UI 自动化树
UI 自动化属性
UI 自动化控制模式
UI 自动化控制类型
UI 自动化事件
相关主题
了解更多访问:windows应用程序GUI自动化控制
本主题概述Microsoft UI自动化规范,它构成了windows实现UI自动化的的基础。UI自动化规范可以跨Microsoft Windows以外的平台支持。有关更多信息,请参阅UI自动化规范。
UI自动化规范提供了对Windows桌面上UI元素的灵活编程访问,使屏幕阅读器等辅助技术产品能够向最终用户提供UI信息,并通过标准输入以外的方式操作UI。
UI自动化的范围比仅仅一个接口定义更广。它提供:
UI自动化通过以下方式改进了Microsoft Active Accessibility:
在Windows中实现UI自动化规范的特点是基于组件对象模型(COM)的接口和托管接口。
UI自动化将UI的每一部分作为自动化元素公开给客户端应用程序。提供程序为每个元素提供属性值。元素以树形结构公开,桌面作为根元素。
自动化元素公开它们所表示的UI元素的公共属性。这些属性之一是控件类型,它描述了控件的基本外观和功能(例如,按钮或复选框)。
UI自动化树表示整个UI:根元素是当前桌面,子元素是应用程序窗口。每个子元素都可以包含表示菜单、按钮、工具栏等的元素。这些元素可以依次包含列表项之类的元素,如下图所示:
请注意,UI自动化树中同级的顺序非常重要。在UI自动化树中,视觉上相邻的对象也应该相邻。
特定控件的UI自动化提供程序支持在该控件的子元素之间导航。然而,提供者并不关心这些控制子树之间的导航。这由UI自动化核心管理,使用来自默认窗口提供程序的信息。
?为了帮助客户端更有效地处理UI信息,该框架支持自动化树的可选视图:原始视图、控件视图和内容视图。如下表所示,过滤类型决定视图,客户端定义视图的范围。
?raw view:自动化元素对象的完整树,桌面是它的根。
control view:raw view的一个子集,是在用户感知时与UI结构紧密映射的一个raw view子集。
content view:control view的子集,包含与用户最相关的内容,如下拉组合框中的值。
For more information, see?UI Automation Tree Overview.
UI自动化规范定义了两种属性:自动化元素属性和控制模式属性。自动化元素属性适用于大多数控件,提供有关元素的基本信息,如其名称。控制模式属性应用于控制模式,下面将对其进行描述。
与Microsoft Active Accessibility不同,每个UI自动化属性都由一个GUID和一个编程名称标识,这使得新属性更容易引入。
For more information, see?UI Automation Properties Overview.
使用AutomationID属性
控制模式描述自动化元素功能的特定方面。例如,一个简单的“可单击”控件(如按钮或超链接)应该支持Invoke控件模式来表示“单击”操作。
每个控件模式都是可能的UI特性和功能的规范化表示。UI自动化的当前实现定义了22种控制模式。Windows自动化API还可以支持自定义控制模式。与Microsoft Active Accessibility角色或状态属性不同,一个自动化元素可以支持多个UI自动化控制模式。
For more information, see?UI Automation Control Patterns Overview.
控件类型是一个自动化元素属性,它指定该元素表示的已知控件。目前,UI自动化定义了38种控件类型,包括按钮、复选框、组合框、数据网格、文档、超链接、图像、工具提示、树和窗口。
在将控件类型分配给元素之前,元素需要满足某些条件,包括特定的自动化树结构、属性值、控件模式和事件。然而,你并不局限于这些。可以使用自定义模式和属性以及预定义的模式和属性扩展控件。
预定义控件类型的总数明显低于Microsoft Active Accessibility对象角色,因为可以组合UI自动化控件类型来表示更大的功能集,而Microsoft Active Accessibility角色则不能。
For more information, see?UI Automation Control Types Overview.
button control type
UI自动化事件通知应用程序对自动化元素所做的更改和所采取的操作。有四种不同类型的UI自动化事件,它们并不一定意味着UI的可视状态已经改变。UI自动化事件模型独立于Windows中的WinEvent框架,尽管Windows自动化API使UI自动化事件与Microsoft Active Accessibility框架互操作。
For more information, see?UI Automation Events Overview.
UI Automation Specification,?Windows Automation API Overview
cs