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

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

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

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

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

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

В этом разделе содержатся следующие подразделы.

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

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

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

поставщики модель автоматизации пользовательского интерфейса поддерживают фильтрацию путем определения свойств элементов, включая свойства IUIAutomationElement::IsControlElement и IUIAutomationElement::IsContentElement.

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

Базовое представление

Необработанное представление дерева модель автоматизации пользовательского интерфейса — это полное дерево элементов автоматизации, корнем которых является рабочий стол. Необработанное представление точно соответствует собственной программной структуре приложения и является наиболее подробным доступным представлением. Оно также является основой, на которой строятся другие представления дерева. Так как это представление зависит от базовой платформы пользовательского интерфейса, необработанное представление кнопки Windows Presentation Foundation (WPF) отличается от необработанного представления кнопки Microsoft Win32.

Необработанное представление получается путем поиска элементов без указания свойств или с помощью IUIAutomation::RawViewWalker для получения интерфейса IUIAutomationTreeWalker для навигации по дереву.

Представление элемента управления

Представление элемента управления является подмножеством базового представления. Он включает только те элементы пользовательского интерфейса, для которых свойство IUIAutomationElement::IsControlElement имеет значение TRUE.

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

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

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

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

Представление элемента управления получается путем поиска элементов, для которых свойство IUIAutomationElement::IsControlElement имеет значение true, или с помощью ControlViewWalker , чтобы получить интерфейс IUIAutomationTreeWalker для навигации по дереву.

Представление содержимого

Представление содержимого дерева модель автоматизации пользовательского интерфейса является подмножеством представления элемента управления. Он включает только те элементы пользовательского интерфейса, для которых свойство IUIAutomationElement::IsControlElement и IUIAutomationElement::IsContentElement имеет значение TRUE.

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

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

Представление содержимого получается путем поиска элементов, у которых свойства IsControlElement и CurrentIsContentElement имеют значение TRUE, или с помощью IUIAutomation::ContentViewWalker для получения интерфейса IUIAutomationTreeWalker для навигации по дереву.

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

Снимок экрана: простое поле со списком с тремя раскрывающимся списком

снимок экрана: приложение uispy с представлениями элементов поля со списком и содержимым

Основные понятия

Создание объекта CUIAutomation

Получение элементов автоматизации пользовательского интерфейса

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