Microsoft UI Automation

редактировать

Microsoft UI Automation (UIA) - это интерфейс прикладного программирования (API) который позволяет получать доступ, идентифицировать и управлять элементами пользовательского интерфейса (UI) другого приложения.

UIA нацелен на обеспечение доступности UI и является преемником Microsoft Активная доступность. Он также упрощает автоматизацию тестирования графического интерфейса пользователя и является механизмом, на котором основаны многие инструменты автоматизации тестирования. Инструменты RPA также используют его для автоматизации приложений в бизнес-процессах.

Поставщики свойств UIA поддерживают программы как Win32, так и .NET.

Последняя спецификация UIA входит в состав Microsoft UI Automation Community Promise Specification. Microsoft утверждает, что переносимость на другие платформы, кроме Microsoft Windows, была одной из целей ее разработки. С тех пор он был перенесен на Mono.

Содержание
  • 1 История
  • 2 Мотивация и цели
  • 3 Технический обзор
  • 4 Элементы
    • 4.1 Дерево
    • 4.2 Типы элементов управления
    • 4.3 Шаблоны управления
    • 4.4 Свойства
    • 4.5 События
    • 4.6 TextPattern
  • 5 Автоматизация пользовательского интерфейса для автоматического тестирования
  • 6 Доступность
  • 7 Сопутствующие технологии и совместимость
  • 8 Примечания
  • 9 Ссылки
  • 10 Внешние ссылки
История

В 2005 году Microsoft выпустила UIA в качестве преемника MSAA framework.

Управляемый API автоматизации пользовательского интерфейса был выпущен как часть .NET Framework 3.0. Собственный API автоматизации пользовательского интерфейса (поставщик) входит в состав Windows Vista и Windows Server 2008 SDK, а также распространяется с.NET Framework.

UIA доступен из коробки в Windows 7 как часть Windows Automation API 3.0 и как отдельная загрузка для Windows XP, Windows Vista, Windows Server 2003 и 2008.

Мотивация и цели

Как преемник MSAA, UIA стремится достичь следующих целей:

  • Обеспечить эффективную работу клиентов, не заставляя клиентов подключаться к процессу целевого приложения.
  • Предоставлять дополнительную информацию о пользовательский интерфейс.
  • Сосуществуют с MSAA и используют его, но не наследуют проблемы, существующие в MSAA.
  • Обеспечивают альтернативу MSAA, которую легко реализовать.
Технический обзор
Кадр

На стороне клиента UIA предоставляет интерфейс.NET в сборке UIAutomationClient.dllи интерфейс COM, реализованный непосредственно в UIAutomationCore.dll.

На стороне сервера UIAutomationCore.dllвнедряется во все или выбранные процессы на текущем рабочем столе для выполнения извлечения данных от имени клиента. DLL также может загружать плагины UIA (называемые поставщиками) в свой хост-процесс для извлечения данных с использованием различных методов.

У МАУ есть четыре основных компонента поставщика и клиента, как показано в следующей таблице.

КомпонентОписание
UIAutomationCore (UIAutomationCore.dll и иждивенцы)Базовый код (иногда называемый ядром UIA), который обрабатывает связь между поставщиками и клиентами. UI Automation Core также предлагает интерфейсы API провайдера и клиента для неуправляемых приложений и клиентов; Неуправляемые приложения (клиенты или поставщики) не требуют перечисленных ниже управляемых сборок.
API управляемого поставщика (UIAutomationProvider.dll и зависимые)

Набор определений и функций интерфейса , которые реализуются приложениями управляемого поставщика UIA. Провайдеры - это объекты, которые предоставляют информацию об элементах пользовательского интерфейса и реагируют на программный ввод.

Управляемый клиентский API (UIAutomationClient.dll и зависимые)Набор определений интерфейсов и функций для управляемых клиентских приложений UIA.
UIAutomationClientsideProviders.dllНабор реализаций поставщика UIA для устаревших элементов управления Win32 и приложений MSAA. Этот клиентский поставщик по умолчанию доступен для управляемых клиентских приложений.
Элементы

UIA предоставляет клиентским приложениям каждую часть пользовательского интерфейса как элемент автоматизации. Элементы содержатся в древовидной структуре с рабочим столом в качестве корневого элемента.

Объекты элементов автоматизации раскрывают общие свойства элементов пользовательского интерфейса, которые они представляют. Одним из этих свойств является тип элемента управления, который определяет его базовый внешний вид и функциональность как единый узнаваемый объект (например, кнопку или флажок).

Кроме того, элементы предоставляют шаблоны элементов управления, которые предоставляют свойства, специфичные для их типов элементов управления. Шаблоны управления также предоставляют методы, позволяющие клиентам получать дополнительную информацию об элементе и предоставлять ввод.

Клиенты могут фильтровать необработанное представление дерева как представление управления или представление содержимого. Приложения также могут создавать собственные представления.

Дерево

В дереве UIA есть корневой элемент, который представляет текущий рабочий стол, а дочерние элементы которого представляют окна приложений. Каждый из этих дочерних элементов может содержать элементы, представляющие элементы пользовательского интерфейса, такие как меню, кнопки, панели инструментов и списки. Эти элементы, в свою очередь, могут содержать другие элементы, например элементы списка.

Дерево UIA не является фиксированной структурой и его редко можно увидеть целиком, поскольку оно может содержать тысячи элементов. Части дерева строятся по мере необходимости, и дерево может претерпевать изменения по мере добавления, перемещения или удаления элементов.

Типы элементов управления

Типы элементов управления UIA - это хорошо известные идентификаторы, которые можно использовать для обозначения того, какой вид управления представляет конкретный элемент, например, поле со списком или кнопку.

Наличие хорошо известного идентификатора позволяет устройствам со вспомогательными технологиями (AT) более легко определять, какие типы элементов управления доступны в пользовательском интерфейсе (UI) и как взаимодействовать с элементами управления. Удобочитаемое представление информации о типе элемента управления UIA доступно в виде свойства LocalizedControlType, которое может настраиваться разработчиками элементов управления или приложений.

Шаблоны элементов управления

Шаблоны элементов управления предоставляют способ категоризации и раскрытия функциональных возможностей элемента управления независимо от типа элемента управления или внешнего вида элемента управления.

UIA использует шаблоны управления для представления общих действий управления. Например, шаблон элемента управления Invokeиспользуется для элементов управления, которые можно вызывать (например, кнопок), а шаблон элемента управления Scrollиспользуется для элементов управления, которые являются прокручиваемыми окнами просмотра (например, списками, списки или поля со списком). Поскольку каждый шаблон элемента управления представляет собой отдельную функцию, их можно объединить для описания полного набора функций, поддерживаемых конкретным элементом управления.

Свойства

Поставщики UIA предоставляют свойства элементов UIA и шаблонов управления. Эти свойства позволяют клиентским приложениям UIA обнаруживать информацию о частях пользовательского интерфейса (UI), особенно об элементах управления, включая как статические, так и динамические данные.

События

Уведомление о событии UIA является ключевой функцией для вспомогательных технологий (AT), таких как программы чтения с экрана и увеличители экрана. Эти клиенты UIA отслеживают события, которые инициируются поставщиками UIA и происходят в UIA, и используют информацию для уведомления конечных пользователей.

Эффективность повышается, позволяя приложениям-поставщикам вызывать события выборочно, в зависимости от того, подписаны ли какие-либо клиенты на эти события или нет, если клиенты не прослушивают какие-либо события.

TextPattern

UIA предоставляет текстовое содержимое, включая атрибуты формата и стиля, текстовых элементов управления на платформах, поддерживаемых UIA. Эти элементы управления включают, помимо прочего, Microsoft.NET Framework TextBoxи RichTextBox, а также их эквиваленты в Win32.

Отображение текстового содержимого элемента управления осуществляется с помощью шаблона элемента управления TextPattern, который представляет содержимое текстового контейнера в виде текстового потока. В свою очередь, TextPatternтребует поддержки класса TextPatternRangeдля предоставления атрибутов формата и стиля. TextPatternRangeподдерживает TextPattern, представляя непрерывный диапазон текста в текстовом контейнере с конечными точками Startи End. Множественные или непересекающиеся участки текста могут быть представлены более чем одним объектом TextPatternRange. TextPatternRangeподдерживает такие функции, как клонирование, выбор, сравнение, извлечение и обход.

UI Automation для автоматизированного тестирования

UIA также может быть полезен в качестве основы для программного доступа в сценариях автоматического тестирования. Помимо предоставления более совершенных решений для обеспечения доступности, он также специально разработан для обеспечения надежной функциональности для автоматического тестирования.

Программный доступ дает возможность имитировать с помощью кода любое взаимодействие и опыт, проявляемый при традиционном взаимодействии с пользователем. UIA обеспечивает программный доступ через пять компонентов:

  • Дерево UIA упрощает навигацию по логической структуре пользовательского интерфейса для обеспечения доступности и автоматизации.
  • Элементы автоматизации пользовательского интерфейса - это отдельные компоненты в пользовательском интерфейсе.
  • Свойства автоматизации пользовательского интерфейса предоставляют конкретную информацию об элементах пользовательского интерфейса или шаблоне элемента управления.
  • Шаблоны управления автоматизацией пользовательского интерфейса определяют конкретный аспект функциональности или функции элемента управления; они могут состоять из информации о свойствах, методах, событиях и структуре.
  • События автоматизации пользовательского интерфейса обеспечивают триггер для ответа на изменения и уведомления в информации UIA.
Доступность

UIA изначально была доступна в Windows Vista и Windows Server 2008, а также был доступен для Windows XP и Windows Server 2003 как часть.NET Framework 3.0. Он был интегрирован со всеми последующими версиями Windows, включая Windows 7.

. Помимо платформ Windows, проект Olive (который представляет собой набор дополнительных библиотек для ядра Mono с целью поддержки.NET Framework) включает подмножество WPF (PresentationFrameworkи WindowsBase) и автоматизации пользовательского интерфейса.

Проект Novell Mono Accessibility - это реализация спецификаций поставщика и клиента UIA, предназначенная для Моно-фреймворк. Кроме того, проект обеспечивает мост к Accessibility Toolkit (ATK) для вспомогательных технологий (AT) Linux. Novell также работает над мостом для AT на базе UIA для взаимодействия с приложениями, реализующими ATK.

Связанные технологии и взаимодействие
  • Microsoft Active Accessibility (MSAA) : UIA является преемником в MSAA. Однако, поскольку все еще существуют приложения на основе MSAA, для обеспечения связи между приложениями UIA и MSAA используются мосты. Таким образом, информация может быть разделена между двумя API, были разработаны прокси-сервер MSAA-to-UIA и мост UIA-to-MSAA. Первый - это компонент, который использует информацию MSAA и делает ее доступной через клиентский API UIA. Последний позволяет клиентским приложениям, использующим приложения доступа MSAA, реализующие UIA.
  • Доступные полнофункциональные Интернет-приложения (ARIA) : UIA AriaRoleи AriaPropertiesproperties могут предоставлять доступ к значениям атрибута ARIA, соответствующим элементу HTML (который может быть представлен веб-браузерами как элемент автоматизации). Также доступно общее сопоставление атрибутов ARIA с UIA.
  • Windows Automation API : Начиная с Windows 7, Microsoft упаковывает свои технологии доступности в структуру под названием Windows Automation API. И MSAA, и МАУ будут частью этой структуры. Для более старых версий Windows см. KB971513.
  • Mono Accessibility Project : 7 ноября 2007 года Microsoft и Novell Inc., по истечении года действия соглашения о взаимодействии, объявили, что они будут расширять свое соглашение, чтобы включить доступность. В частности, было объявлено, что Novell разработает адаптер с открытым исходным кодом, позволяющий инфраструктуре UIA работать с существующими проектами обеспечения доступности Linux, такими как Linux Accessibility Toolkit (ATK), который поставляется с SUSE Linux Enterprise Desktop, Red Hat Enterprise Linux и Ubuntu Linux. В конечном итоге это сделает UIA кроссплатформенным.
Примечания
Ссылки
Внешние ссылки

.

Последняя правка сделана 2021-05-30 10:14:36
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте