当前位置 博文首页 > haimianjie2012的专栏:UI自动化规范:UI Automation Specificat

    haimianjie2012的专栏:UI自动化规范:UI Automation Specificat

    作者:[db:作者] 时间:2021-08-18 21:54

    目录

    简介

    UI 自动化元素

    UI 自动化树

    UI 自动化属性

    UI 自动化控制模式

    UI 自动化控制类型

    UI 自动化事件

    相关主题


    了解更多访问:windows应用程序GUI自动化控制

    本主题概述Microsoft UI自动化规范,它构成了windows实现UI自动化的的基础。UI自动化规范可以跨Microsoft Windows以外的平台支持。有关更多信息,请参阅UI自动化规范。

    简介

    UI自动化规范提供了对Windows桌面上UI元素的灵活编程访问,使屏幕阅读器等辅助技术产品能够向最终用户提供UI信息,并通过标准输入以外的方式操作UI。

    UI自动化的范围比仅仅一个接口定义更广。它提供:

    • 一种对象模型和函数,使客户端应用程序能够轻松地接收事件、检索属性值和操作UI元素。
    • 用于跨进程边界查找和获取的核心基础结构。
    • 提供程序的一组接口,用于表示UI元素的树结构、常规属性和功能。
    • 一种“控件类型”属性,允许客户端和提供程序清楚地指示UI对象的公共属性、功能和结构。

    UI自动化通过以下方式改进了Microsoft Active Accessibility:

    • 支持高效的进程外客户端,同时继续允许进程内访问。
    • 以允许客户端脱离进程的方式公开有关UI的更多信息。
    • 与Microsoft Active Accessibility共存并利用它而不继承其限制。有关详细信息,请参阅Microsoft Active Accessibility和UI Automation。
    • 为IAccessible提供了一个易于实现的替代方案。

    在Windows中实现UI自动化规范的特点是基于组件对象模型(COM)的接口和托管接口。

    UI 自动化元素

    UI自动化将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 自动化属性

    UI自动化规范定义了两种属性:自动化元素属性和控制模式属性。自动化元素属性适用于大多数控件,提供有关元素的基本信息,如其名称。控制模式属性应用于控制模式,下面将对其进行描述。

    与Microsoft Active Accessibility不同,每个UI自动化属性都由一个GUID和一个编程名称标识,这使得新属性更容易引入。

    For more information, see?UI Automation Properties Overview.

    使用AutomationID属性

    UI 自动化控制模式

    控制模式描述自动化元素功能的特定方面。例如,一个简单的“可单击”控件(如按钮或超链接)应该支持Invoke控件模式来表示“单击”操作。

    每个控件模式都是可能的UI特性和功能的规范化表示。UI自动化的当前实现定义了22种控制模式。Windows自动化API还可以支持自定义控制模式。与Microsoft Active Accessibility角色或状态属性不同,一个自动化元素可以支持多个UI自动化控制模式。

    For more information, see?UI Automation Control Patterns Overview.

    UI 自动化控制类型

    控件类型是一个自动化元素属性,它指定该元素表示的已知控件。目前,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的可视状态已经改变。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
    下一篇:没有了