Información general sobre el árbol de la UI Automation

NotaNota

Esta documentación está dirigida a desarrolladores de .NET Framework que desean usar las clases administradas de UI Automation definidas en el espacio de nombres System.Windows.Automation.Para obtener información actualizada sobre UI Automation, vea Windows Automation API: UI Automation.

Los productos de tecnología de ayuda y los scripts de prueba navegan por el árbol de UI Automation para recopilar información sobre la user interface (UI) y sus elementos.

En el árbol de UI Automation hay un elemento raíz (RootElement) que representa el escritorio actual y cuyos elementos secundarios representan ventanas de la aplicación. Cada uno de estos elementos secundarios puede contener elementos que representan partes de la UI, tales como menús, botones, barras de herramientas y cuadros de lista. A su vez, estos elementos pueden contener otros elementos, como elementos de lista.

El árbol de UI Automation no es una estructura fija y casi nunca se presenta en su totalidad, ya que podría contener miles de elementos. Algunas partes del árbol se generan a medida que se necesitan y pueden experimentar cambios a medida que se agregan, mueven o quitan elementos.

Los proveedores de Automatización de la interfaz de usuario son compatibles con el árbol de UI Automation gracias a que implementan la navegación entre los elementos de un fragmento, que está compuesto de una raíz (normalmente hospedada en una ventana) y un subárbol. Sin embargo, la navegación de un control a otro no corresponde a los proveedores. De ella se encarga el núcleo de UI Automation, que utiliza información de los proveedores de ventana predeterminados.

Este tema contiene las secciones siguientes.

  • Vistas del árbol de automatización
  • Temas relacionados

Vistas del árbol de automatización

El árbol de UI Automation puede filtrarse para crear vistas que contienen únicamente los objetos AutomationElement pertinentes para un cliente determinado. Este enfoque permite a los clientes personalizar la estructura presentada a través de UI Automation de acuerdo con sus necesidades concretas.

El cliente tiene dos maneras de personalizar la vista: ámbito y filtrado. El ámbito consiste en definir la extensión de la vista a partir de un elemento base: por ejemplo, puede ser conveniente que la aplicación busque únicamente elementos secundarios directos del escritorio o todos los descendientes de una ventana de la aplicación. El filtrado permite definir los tipos de elementos que se incluirán en la vista.

Los proveedores de Automatización de la interfaz de usuario admiten el filtrado definiendo propiedades en los elementos, incluidas las propiedades IsControlElementProperty e IsContentElementProperty.

La UI Automation proporciona tres vistas predeterminadas. Estas vistas se definen según el tipo de filtrado realizado; por su parte, el ámbito de cualquier vista viene definido por la aplicación. Además, la aplicación puede aplicar otros filtros a las propiedades; por ejemplo, para incluir únicamente controles habilitados en una vista de control.

Vista sin formato

La vista sin formato del árbol de UI Automation es el árbol completo de objetos AutomationElement cuya raíz es el escritorio. La vista sin formato sigue estrechamente la estructura de programación nativa de una aplicación y, por consiguiente, es la vista más detallada disponible. También es la base sobre la que se generan las demás vistas del árbol. Dado que esta vista depende del marco de trabajo de la UI subyacente, la vista sin formato de un botón de WPF será diferente de la de un botón de Win32.

La vista sin formato se obtiene mediante buscando los elementos sin especificar las propiedades o utilizando RawViewWalker para navegar por el árbol.

Vista de control

La vista de control del árbol de UI Automation simplifica la tarea del producto de tecnología de asistencia consistente en describir la UI al usuario final y ayudarle a interactuar con la aplicación, gracias a que se ciñe estrechamente a la estructura de la UI percibida por un usuario final.

La vista de control es un subconjunto de la vista sin formato. Incluye todos los elementos de la UI de la vista sin formato que un usuario final entendería como interactivos o que contribuyan a conformar la estructura lógica del control en la UI. Algunos ejemplos de elementos de la UI que contribuyen a la estructura lógica de la UI, aunque no son interactivos en sí mismos, son los contenedores de elementos, como encabezados de vista de lista, barras de herramientas, menús y la barra de estado. Los elementos no interactivos que se utilizan únicamente con fines de diseño o decorativos no aparecen en la vista de control. Un ejemplo de ello es un panel utilizado únicamente para organizar los controles en un cuadro de diálogo, pero que no contiene información. Los elementos no interactivos que se ven en la vista de control son los gráficos con información y texto estático de un cuadro de diálogo. Los elementos no interactivos que se incluyen en la vista de control no pueden recibir el foco del teclado.

La vista de control se obtiene buscando los elementos cuya propiedad IsControlElement está establecida en true o bien utilizando ControlViewWalker para navegar por el árbol.

Vista de contenido

La vista de contenido del árbol de UI Automation es un subconjunto de la vista de control. Contiene los elementos de la UI que transmiten la verdadera información en una interfaz de usuario, incluidos los elementos de la UI que pueden recibir el foco del teclado y algún texto que no sea una etiqueta de un elemento de la UI. Por ejemplo, los valores de un cuadro combinado desplegable aparecen en la vista de contenido, porque representan la información utilizada por un usuario final. En la vista de contenido, un cuadro combinado y un cuadro de lista se representan como una colección de elementos de la UI donde se puede seleccionar uno o varios elementos. El hecho de que el primero esté siempre abierto y el otro se pueda expandir y contraer no tiene ninguna relevancia en la vista de contenido, porque está diseñada para mostrar los datos, o el contenido, que se presenta al usuario.

La vista de contenido se obtiene buscando los elementos cuya propiedad IsContentElement está establecida en true o bien utilizando ContentViewWalker para navegar por el árbol.

Vea también

Referencia

AutomationElement

Conceptos

Información general sobre UI Automation