stringtranslate.com

Automatización de la interfaz de usuario de Microsoft

Microsoft UI Automation (UIA) es una interfaz de programación de aplicaciones (API) que permite acceder, identificar y manipular los elementos de la interfaz de usuario (UI) de otra aplicación. [1] [2]

UIA tiene como objetivo proporcionar accesibilidad a la interfaz de usuario y es un sucesor de Microsoft Active Accessibility . También facilita la automatización de pruebas de GUI y es el motor en el que se basan muchas herramientas de automatización de pruebas . Las herramientas RPA también lo utilizan para automatizar aplicaciones en procesos comerciales .

Los proveedores de propiedades de la UIA admiten programas Win32 y .NET .

La última especificación de UIA se encuentra como parte de la Especificación de promesa de la comunidad de automatización de la interfaz de usuario de Microsoft . Microsoft afirma que la portabilidad a plataformas distintas a Microsoft Windows era uno de sus objetivos de diseño. Desde entonces ha sido portado a Mono . [3]

Historia

En 2005, Microsoft lanzó UIA como sucesor del marco MSAA .

La API de automatización de UI administrada se lanzó como parte de .NET Framework 3.0 . La API (proveedor) de automatización de la interfaz de usuario nativa se incluye como parte del SDK de Windows Vista y Windows Server 2008 y también se distribuye con .NET Framework.

UIA está disponible de fábrica en Windows 7 como parte de Windows Automation API 3.0 y como descarga separada para Windows XP, Windows Vista y Windows Server 2003 y 2008. [4]

Motivación y objetivos.

Como sucesora de MSAA, la UIA pretende abordar los siguientes objetivos:

Resumen técnico

Marco
Marco

Del lado del cliente, UIA proporciona una interfaz .NET en UIAutomationClient.dllensamblador y una interfaz COM implementada directamente en UIAutomationCore.dll.

En el lado del servidor, UIAutomationCore.dllse inyecta en todos o en los procesos seleccionados en el escritorio actual para realizar la recuperación de datos en nombre de un cliente. La DLL también puede cargar complementos UIA (llamados proveedores ) en su proceso de host para extraer datos utilizando diferentes técnicas.

UIA tiene cuatro componentes principales de proveedor y cliente, como se muestra en la siguiente tabla.

Elementos

UIA expone cada parte de la interfaz de usuario a las aplicaciones cliente como un elemento de automatización. Los elementos están contenidos en una estructura de árbol, con el escritorio como elemento raíz.

Los objetos de elemento de automatización exponen propiedades comunes de los elementos de la interfaz de usuario que representan. Una de estas propiedades es el tipo de control, que define su apariencia y funcionalidad básicas como una entidad única reconocible (por ejemplo, un botón o una casilla de verificación).

Además, los elementos exponen patrones de control que proporcionan propiedades específicas para sus tipos de control. Los patrones de control también exponen métodos que permiten a los clientes obtener más información sobre el elemento y proporcionar información.

Los clientes pueden filtrar la vista sin formato del árbol como vista de control o vista de contenido. Las aplicaciones también pueden crear vistas personalizadas.

Árbol

Dentro del árbol UIA hay un elemento raíz que representa el escritorio actual y cuyos elementos secundarios representan las ventanas de la aplicación. Cada uno de estos elementos secundarios puede contener elementos que representan partes de la interfaz de usuario, como menús, botones, barras de herramientas y cuadros de lista. Estos elementos, a su vez, pueden contener otros elementos, como elementos de lista.

El árbol UIA no es una estructura fija y rara vez se ve en su totalidad porque puede contener miles de elementos. Las partes del árbol se construyen a medida que se necesitan y el árbol puede sufrir cambios a medida que se agregan, mueven o eliminan elementos.

Tipos de control

Los tipos de control UIA son identificadores bien conocidos que se pueden utilizar para indicar qué tipo de control representa un elemento en particular, como un cuadro combinado o un botón.

Tener un identificador conocido permite que los dispositivos de tecnología de asistencia (AT) determinen más fácilmente qué tipos de controles están disponibles en la interfaz de usuario (UI) y cómo interactuar con los controles. Una representación legible por humanos de la información del tipo de control UIA está disponible como LocalizedControlTypepropiedad, que los desarrolladores de aplicaciones o controles pueden personalizar.

Patrones de control

Los patrones de control proporcionan una manera de categorizar y exponer la funcionalidad de un control independientemente del tipo de control o de la apariencia del control.

La UIA utiliza patrones de control para representar comportamientos de control comunes. Por ejemplo, el Invokepatrón de control se usa para controles que se pueden invocar (como botones) y el Scrollpatrón de control se usa para controles que son ventanas gráficas desplazables (como cuadros de lista, vistas de lista o cuadros combinados). Debido a que cada patrón de control representa una funcionalidad separada, se pueden combinar para describir el conjunto completo de funcionalidades admitidas por un control particular.

Propiedades

Los proveedores de UIA exponen propiedades de los elementos de la UIA y los patrones de control. Estas propiedades permiten que las aplicaciones cliente de UIA descubran información sobre partes de la interfaz de usuario (UI), especialmente controles, incluidos datos estáticos y dinámicos.

Eventos

La notificación de eventos de la UIA es una característica clave para las tecnologías de asistencia (AT), como los lectores de pantalla y las lupas de pantalla. Estos clientes de la UIA rastrean los eventos generados por los proveedores de la UIA que ocurren dentro de la UIA y utilizan la información para notificar a los usuarios finales.

La eficiencia se mejora al permitir que las aplicaciones del proveedor generen eventos de forma selectiva, dependiendo de si algún cliente está suscrito a esos eventos, o no, si ningún cliente está escuchando ningún evento.

Patrón de texto

UIA expone el contenido textual, incluidos los atributos de formato y estilo, de los controles de texto en plataformas compatibles con UIA. Estos controles incluyen, entre otros, Microsoft .NET Framework TextBoxy RichTextBoxsus equivalentes Win32.

La exposición del contenido textual de un control se logra mediante el uso del TextPatternpatrón de control, que representa el contenido de un contenedor de texto como una secuencia de texto. A su vez, TextPatternrequiere el soporte de la TextPatternRangeclase para exponer atributos de formato y estilo. TextPatternRangeadmite TextPatternrepresentando un intervalo de texto contiguo en un contenedor de texto con los puntos finales Starty End. Se pueden representar tramos de texto múltiples o separados mediante más de un TextPatternRangeobjeto. TextPatternRangeadmite funciones como clonación, selección, comparación, recuperación y recorrido.

Automatización de UI para pruebas automatizadas

UIA también puede resultar útil como marco para el acceso programático en escenarios de pruebas automatizadas. Además de proporcionar soluciones de accesibilidad más refinadas, también está diseñado específicamente para proporcionar una funcionalidad sólida para pruebas automatizadas.

El acceso programático brinda la capacidad de imitar, a través de código, cualquier interacción y experiencia expuesta por las interacciones tradicionales del usuario. UIA permite el acceso programático a través de cinco componentes:

Disponibilidad

UIA estuvo inicialmente disponible en Windows Vista y Windows Server 2008, y también estuvo disponible para Windows XP y Windows Server 2003 como parte de .NET Framework 3.0. Se ha integrado con todas las versiones posteriores de Windows, hasta Windows 7 inclusive . [5]

Además de las plataformas Windows, el proyecto Olive (que es un conjunto de bibliotecas complementarias para el núcleo Mono destinadas a la compatibilidad con .NET Framework) incluye un subconjunto de WPF ( PresentationFrameworky WindowsBase) y UI Automation. [6]

El proyecto Mono Accessibility de Novell es una implementación de las especificaciones de proveedor y cliente de UIA destinadas al marco Mono. Además, el proyecto proporciona un puente hacia el kit de herramientas de accesibilidad (ATK) para tecnologías de asistencia (AT) de Linux. Novell también está trabajando en un puente para que los AT basados ​​en UIA interactúen con aplicaciones que implementan ATK. [7]

Tecnología relacionada e interoperabilidad

Notas

  1. ^ Darryl K. Taft: Microsoft promueve la tecnología de accesibilidad multiplataforma, EWeek (28 de noviembre de 2005), consultado el 7 de febrero de 2007.
  2. ^ Microsoft: el nuevo modelo de accesibilidad de Microsoft se ofrecerá como solución multiplataforma para la industria, consultado el 6 de febrero de 2007.
  3. ^ ab Microsoft Developer Network: especificación de automatización de la interfaz de usuario y promesa comunitaria
  4. ^ Descripción de la API de automatización de Windows
  5. ^ Microsoft: descripción general de la automatización de la interfaz de usuario, consultado el 7 de febrero de 2007.
  6. ^ Mono: Oliva.
  7. Miguel de Icaza y Philippe Cohen: Mono, Mainsoft y desarrollo empresarial multiplataforma Archivado el 17 de junio de 2008 en Wayback Machine , Enterprise Open Source Magazine (14 de enero de 2007), consultado el 7 de febrero de 2007.
  8. ^ Microsoft Developer Network (MSDN): Microsoft, UI Automation y Microsoft Active Accessibility, consultado el 7 de febrero de 2007.
  9. ^ KB971513: Descarga de la API de automatización de Windows
  10. ^ Microsoft: Microsoft y Novell celebran el año de la interoperabilidad y amplían el acuerdo de colaboración.
  11. ^ Página de inicio del proyecto Mono Accesibilidad.

Referencias

enlaces externos