Microsoft UI Automation - Microsoft UI Automation

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

МАУ нацелена на предоставление Доступность пользовательского интерфейса и это преемник Microsoft Active Accessibility. Это также облегчает Автоматизация тестирования GUI, и это двигатель, на котором автоматизация тестирования инструменты основаны. RPA инструменты также используют его для автоматизации приложений в деловые процессы.

Поставщики недвижимости МАУ поддерживают оба Win32 и .СЕТЬ программы.

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

История

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

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

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

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

Как преемник MSAA, МАУ ставит перед собой следующие цели:

  • Обеспечьте эффективную работу клиентов, не заставляя клиентов подключаться к процессу целевого приложения.
  • Предоставьте дополнительную информацию о пользовательском интерфейсе.
  • Сосуществуют с 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 предоставляет клиентским приложениям каждую часть пользовательского интерфейса как элемент автоматизации. Элементы содержатся в древовидной структуре с рабочим столом в качестве корневого элемента.

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

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

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

Дерево

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

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

Типы управления

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

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

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

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

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

Характеристики

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

События

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

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

TextPattern

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

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

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

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

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

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

Доступность

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

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

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

Связанные технологии и совместимость

  • Microsoft Active Accessibility (MSAA): МАУ является преемником MSAA. Однако, поскольку все еще существуют приложения на основе MSAA, для обеспечения связи между приложениями UIA и MSAA используются мосты. Таким образом, информация может быть разделена между двумя API, были разработаны прокси-сервер MSAA-to-UIA и мост UIA-to-MSAA. Первый - это компонент, который использует информацию MSAA и делает ее доступной через клиентский API UIA. Последний позволяет клиентским приложениям использовать приложения доступа MSAA, реализующие UIA.[8]
  • Доступные полнофункциональные интернет-приложения (ARIA): МАУ AriaRole и AriaProperties properties могут предоставлять доступ к значениям атрибутов ARIA, соответствующим элементу HTML (который может быть представлен веб-браузерами как элемент автоматизации). Также доступно общее отображение атрибутов ARIA в UIA.[3]
  • API автоматизации Windows: Начиная с Windows 7, Microsoft объединяет свои технологии обеспечения доступности в структуру под названием Windows Automation API. И MSAA, и МАУ будут частью этой структуры. Для более старых версий Windows см. KB971513.[9]
  • Моно проект доступности: 7 ноября 2007 г. Microsoft и Novell Inc. по истечении года действия соглашения о совместимости объявили, что они расширят свое соглашение, включив в него доступность.[10][11] В частности, было объявлено, что Novell разработает адаптер с открытым исходным кодом, позволяющий инфраструктуре UIA работать с существующими Linux проекты доступности, такие как Инструментарий доступности Linux (ATK), который поставляется с SUSE Рабочий стол Linux Enterprise, Красная шляпа Корпоративный Linux и Ubuntu Linux. В конечном итоге это сделает МАУ кроссплатформенным.

Примечания

  1. ^ Дэррил К. Тафт: Microsoft продвигает технологию межплатформенной доступности, EWeek (2005-11-28), дата обращения 07.02.2007.
  2. ^ Microsoft: Новая модель доступности Microsoft будет предложена как кроссплатформенное решение для промышленности, дата обращения 06.02.2007.
  3. ^ а б Сеть разработчиков Microsoft: Спецификация автоматизации пользовательского интерфейса и обещание сообщества
  4. ^ Описание API автоматизации Windows
  5. ^ Microsoft: Обзор автоматизации пользовательского интерфейса, дата обращения 07.02.2007.
  6. ^ Мононуклеоз: Оливковое.
  7. ^ Мигель де Икаса и Филипп Коэн: Mono, Mainsoft и кроссплатформенная разработка предприятий В архиве 2008-06-17 на Wayback Machine, Enterprise Open Source Magazine (2007-01-14), дата обращения 07.02.2007.
  8. ^ Сеть разработчиков Microsoft (MSDN): Microsoft, UI Automation и Microsoft Active Accessibility, дата обращения 07.02.2007.
  9. ^ KB971513: Загрузка Windows Automation API
  10. ^ Microsoft: Microsoft и Novell отмечают Год совместимости, расширяя соглашение о сотрудничестве.
  11. ^ Домашняя страница Mono Accessibility Project.

Рекомендации

внешняя ссылка