stringtranslate.com

Автоматизация пользовательского интерфейса Microsoft

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

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

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

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

История

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

Managed UI Automation API был выпущен как часть .NET Framework 3.0 . Собственный UI Automation 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. [4]

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

Будучи преемником MSAA, UIA ставит перед собой следующие цели:

Технический обзор

Рамка
Рамка

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

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

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

Элементы

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

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

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

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

Дерево

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

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

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

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

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

Модели управления

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

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

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

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

События

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

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

ТекстовыйШаблон

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

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

Автоматизация пользовательского интерфейса для автоматизированного тестирования

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

Программный доступ обеспечивает возможность имитировать посредством кода любое взаимодействие и опыт, предоставляемые традиционными взаимодействиями пользователя. 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 ( PresentationFrameworkи WindowsBase) и UI Automation. [6]

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

Сопутствующие технологии и совместимость

Примечания

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

Ссылки

Внешние ссылки