Articulo de referencia

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 ...

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 el sucesor de Microsoft Active Accessibility . También facilita la automatización de pruebas de interfaz gráfica de usuario (GUI) y es la base de muchas herramientas de automatización de pruebas . Las herramientas RPA también lo utilizan para automatizar aplicaciones en procesos de negocio .

Los proveedores de propiedades de UIA son compatibles con programas Win32 y .NET .

La especificación más reciente 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 de Microsoft Windows fue uno de sus objetivos de diseño. Posteriormente, se adaptó a Mono . [ 3 ]

Historia

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

La API de automatización de la interfaz de usuario administrada se lanzó como parte de .NET Framework 3.0 . La API de automatización de la interfaz de usuario nativa (proveedor) 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 forma predeterminada en Windows 7 como parte de Windows Automation API 3.0 y como una descarga separada para Windows XP, Windows Vista y Windows Server 2003 y 2008. [ 4 ]

Motivación y objetivos

Como sucesora de MSAA, UIA se propone alcanzar los siguientes objetivos:

  • Permite un rendimiento eficiente del cliente sin obligarlo a integrarse en el proceso de la aplicación de destino.
  • Mostrar más información sobre la interfaz de usuario.
  • Coexistir con MSAA y utilizarla, pero no heredar los problemas que existen en MSAA.
  • Ofrecer una alternativa a MSAA que sea sencilla de implementar.

Descripción general técnica

Marco
Marco

En el lado del cliente, UIA proporciona una interfaz .NET en UIAutomationClient.dllensamblado y una interfaz COM implementada directamente en UIAutomationCore.dll.

En el servidor, UIAutomationCore.dllse inyecta en todos o en determinados procesos del escritorio actual para recuperar datos en nombre del cliente. La DLL también puede cargar complementos UIA (denominados proveedores ) en su proceso anfitrión para extraer datos mediante diferentes técnicas.

UIA tiene cuatro componentes principales, tanto de proveedores como de clientes, como se muestra en la siguiente tabla.

Elementos

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

Los objetos Automation Element 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 y 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 datos de entrada.

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

Árbol

Dentro del árbol UIA existe un elemento raíz que representa el escritorio actual y cuyos elementos secundarios representan las ventanas de las aplicaciones. Cada uno de estos elementos secundarios puede contener elementos que representan componentes de la interfaz de usuario, como menús, botones, barras de herramientas y listas desplegables. 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, ya que puede contener miles de elementos. Las partes del árbol se construyen según 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 conocidos que se pueden usar para indicar qué tipo de control representa un elemento en particular, como un cuadro combinado o un botón.

Disponer de un identificador conocido permite a los dispositivos de tecnología de asistencia (TA) determinar con mayor facilidad qué tipos de controles están disponibles en la interfaz de usuario (IU) y cómo interactuar con ellos. Una representación legible de la información del tipo de control UIA está disponible como una LocalizedControlTypepropiedad, que puede ser personalizada por los desarrolladores de controles o aplicaciones.

Patrones de control

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

UIA utiliza patrones de control para representar comportamientos 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). Dado que cada patrón de control representa una funcionalidad independiente, se pueden combinar para describir el conjunto completo de funcionalidades que admite un control en particular.

Propiedades

Los proveedores de UIA exponen propiedades en los elementos de UIA y en 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 los controles, incluyendo datos estáticos y dinámicos.

Eventos

La notificación de eventos de la UIA es una función clave para las tecnologías de asistencia (TA), como los lectores de pantalla y las lupas de pantalla. Estos clientes de la UIA registran 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 mejora al permitir que las aplicaciones de los proveedores generen eventos de forma selectiva, dependiendo de si algún cliente está suscrito a esos eventos, o no generen ninguno, si ningún cliente está a la espera de recibirlos.

Patrón de texto

UIA expone el contenido textual, incluidos los atributos de formato y estilo, de los controles de texto en las plataformas compatibles con UIA. Estos controles incluyen, entre otros, los de 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 un flujo de texto. A su vez, TextPatternrequiere el soporte de la TextPatternRangeclase para exponer atributos de formato y estilo. TextPatternRangeadmite TextPatternal representar un segmento de texto contiguo en un contenedor de texto con los puntos finales Starty End. Múltiples segmentos de texto disjuntos pueden ser representados por más de un TextPatternRangeobjeto. TextPatternRangeadmite funcionalidad como clonación, selección, comparación, recuperación y recorrido.

Automatización de la interfaz de usuario para pruebas automatizadas

UIA también puede ser útil como marco para el acceso programático en escenarios de pruebas automatizadas. Además de proporcionar soluciones más sofisticadas para la accesibilidad, está diseñado específicamente para ofrecer una funcionalidad robusta para las pruebas automatizadas.

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

  • El árbol UIA facilita la navegación a través de la estructura lógica de la interfaz de usuario para mejorar la accesibilidad y la automatización.
  • Los elementos de automatización de la interfaz de usuario son componentes individuales de la interfaz de usuario.
  • Las propiedades de automatización de la interfaz de usuario proporcionan información específica sobre los elementos de la interfaz de usuario o el patrón de control.
  • Los patrones de control de automatización de la interfaz de usuario definen un aspecto particular de la funcionalidad o característica de un control; pueden consistir en información sobre propiedades, métodos, eventos y estructuras.
  • Los eventos de automatización de la interfaz de usuario proporcionan un desencadenante para responder a los cambios y notificaciones en la información de UIA.

Disponibilidad

UIA estuvo disponible inicialmente en Windows Vista y Windows Server 2008, y también se puso a disposición de 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 que apunta a la compatibilidad con .NET Framework) incluye un subconjunto de WPF ( PresentationFrameworky WindowsBase) y automatización de la interfaz de usuario. [ 6 ]

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

  • Microsoft Active Accessibility (MSAA) : UIA es el sucesor de MSAA. Sin embargo, dado que aún existen aplicaciones basadas en MSAA, se utilizan puentes para permitir la comunicación entre aplicaciones UIA y MSAA. Para que la información pueda compartirse entre las dos API, se desarrollaron un proxy MSAA-to-UIA y un puente UIA-to-MSAA. El primero es un componente que consume información MSAA y la pone a disposición a través de la API de cliente UIA. El segundo permite que las aplicaciones cliente utilicen aplicaciones de acceso MSAA que implementan UIA. [ 8 ]
  • Aplicaciones de Internet Enriquecidas Accesibles (ARIA) : Las propiedades UIA AriaRolepermiten AriaPropertiesacceder a los valores de los atributos ARIA correspondientes a un elemento HTML (que los navegadores web pueden exponer como un elemento de automatización). También está disponible una asignación general de atributos ARIA a UIA. [ 3 ]
  • API de automatización de Windows : A partir de Windows 7, Microsoft está integrando sus tecnologías de accesibilidad en un marco denominado API de automatización de Windows. Tanto MSAA como UIA formarán parte de este marco. Para versiones anteriores de Windows, consulte KB971513. [ 9 ]
  • Proyecto de Accesibilidad de Mono : El 7 de noviembre de 2007, Microsoft y Novell Inc. , tras un año de su acuerdo de interoperabilidad, anunciaron la ampliación de dicho acuerdo para incluir la accesibilidad. [ 10 ] [ 11 ] En concreto, se anunció que Novell desarrollaría un adaptador de código abierto que permitiría al marco UIA trabajar con proyectos de accesibilidad de Linux existentes , como el Linux Accessibility Toolkit (ATK), incluido en SUSE Linux Enterprise Desktop , Red Hat Enterprise Linux y Ubuntu Linux . Esto, a la larga, convertiría a UIA en multiplataforma.

Referencias

  1. Darryl K. Taft: Microsoft promueve la tecnología de accesibilidad multiplataforma , EWeek (28-11-2005), consultado el 07-02-2007.
  2. Microsoft: El nuevo modelo de accesibilidad de Microsoft se ofrecerá como una solución multiplataforma para la industria , consultado el 6 de febrero de 2007.
  3. 1 2 Red de desarrolladores de Microsoft: Especificación de automatización de la interfaz de usuario y promesa de la comunidad
  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. Monocromo: Oliva .
  7. Miguel de Icaza y Philippe Cohen: Mono, Mainsoft y el 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 un año de interoperabilidad y amplían su acuerdo de colaboración .
  11. Página principal del proyecto de accesibilidad de Mono .
  • FlaUI

Obtenido de " https://en.wikipedia.org/w/index.php?title=Microsoft_UI_Automation&oldid=1328339456 "