Поделиться через


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

ПримечаниеПримечание

Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation.

Технология специальных возможностей продуктов и скриптов тестирования использует дерево UI Automation для сбора сведений о user interface (UI) и его элементах.

В дереве UI Automation имеется корневой элемент (RootElement), который представляет текущий рабочий стол. Дочерние элементы этого корневого элемента представляют окна приложений. Каждый из этих дочерних элементов может содержать элементы, представляющие части UI, таки как меню, кнопки, панели инструментов и поля со списком. В свою очередь, эти элементы могут содержать элементы, такие как элементы списка.

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

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

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

  • Представления дерева модели автоматизации
  • Связанные разделы

Представления дерева модели автоматизации

Дерево UI Automation может быть отфильтровано для создания представлений, содержащих только те объекты AutomationElement, которые соответствуют конкретному клиенту. Этот подход позволяет клиентам настроить структуру, представленную с помощью UI Automation, для их конкретных нужд.

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

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

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

Начальное представление

Начальным представлением дерева UI Automation является полное дерево объектов AutomationElement, для которых рабочий стол является корнем. Начальное представление точно следует собственной программной структуре приложения и, таким образом, является наиболее подробным доступным представлением. Оно также является базой, на основе которой строятся остальные представления дерева. Так как это представление зависит от базовой структуры UI, начальное представление кнопки WPF будет отличаться от кнопки Win32.

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

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

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

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

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

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

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

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

См. также

Ссылки

AutomationElement

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

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