Из Википедии, бесплатной энциклопедии
  (Перенаправлено из UI Automation )
Перейти к навигации Перейти к поиску

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

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

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

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

История [ править ]

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

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. [4]

Мотивация и цели [ править ]

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

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

Технический обзор [ править ]

Рамка

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

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

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

Элементы [ править ]

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поддерживает такие функции, как клонирование, выбор, сравнение, поиск и обход.

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

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 ( PresentationFrameworkи WindowsBase) и автоматизации пользовательского интерфейса. [6]

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

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

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

Заметки [ править ]

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

Ссылки [ править ]

  • Типы элементов управления автоматизации пользовательского интерфейса
  • Шаблоны управления автоматизацией пользовательского интерфейса
  • Свойства элемента управления автоматизации пользовательского интерфейса
  • События автоматизации пользовательского интерфейса

Внешние ссылки [ править ]

  • Платформа автоматизации тестирования UI Automation Verify (UIA Verify)
  • Расширения PowerShell для автоматизации пользовательского интерфейса
  • TestStack / Белый