windows-8 windows-runtime ui-automation

windows 8 - ¿Cómo hacer la automatización de la interfaz de usuario de las aplicaciones Metro-Style?



windows-8 windows-runtime (3)

Las aplicaciones WinRT (también conocidas como "Metro Style") se ejecutan en un entorno limitado. No puede perforar las paredes entre las aplicaciones, incluidas las aplicaciones de escritorio. Esto incluye el aislamiento de la red (no se puede volver a referir a localhost, por ejemplo, excepto en un entorno de desarrollo). Hay un par de excepciones a esto, como los contactos Compartir y Buscar, que permiten tipos muy específicos de interacciones entre aplicaciones.

Es este entorno limitado lo que impide que UISpy vea la ejecución de la aplicación WinRT en segundo plano. No estoy seguro de cómo UISpy podría solucionar este problema sin algún tipo de excepción de entorno de desarrollo a la zona de pruebas (similar a la excepción de aislamiento de red) que no está disponible en la vista previa del consumidor.

Tampoco estoy al tanto de ningún anuncio sobre cuándo / si la API de automatización de UI será compatible con las aplicaciones WinRT en este momento.

He descargado e instalado la vista previa del consumidor de Windows 8, y me gustaría descubrir cómo usar las API de automatización de la interfaz de usuario para obtener datos de las aplicaciones de estilo metropolitano.

Antecedentes: tengo muchas pruebas automatizadas que usan las API de automatización de la interfaz de usuario de Microsoft para interactuar con las aplicaciones. Los guiones están escritos en IronRuby contra .NET 4

Inicialmente, simplemente me gustaría comprobar si el menú de inicio está visible (y si es así, cerrarlo)

Según Microsoft , las API normales de automatización de la interfaz de usuario deberían poder acceder y controlar las aplicaciones de estilo metropolitano, pero el problema es que no puedo entender cómo mi código puede realmente acceder a la interfaz de usuario de las aplicaciones metropolitanas. Nuestra forma normal de ver los datos de automatización de UI es usar UISpy , sin embargo, cuando ejecuto UI spy bajo Windows 8 y traigo una aplicación de metro, no hay mención de ello ... parece que las aplicaciones de metro (incluida la pantalla de inicio) están amuralladas fuera del escritorio.

Si no puedo encontrar las aplicaciones de metro en UISpy, ¿cómo puedo encontrar cuáles son sus ID de automatización y cómo puedo encontrarlas en mis scripts de prueba automatizados?


Algunos recursos sobre la automatización de UI que funciona en aplicaciones de estilo Metro:

  • Aquí hay una muestra que lo demuestra.
  • Aquí hay una publicación en el blog que lo explica.
  • Este es un hilo del foro sobre el tema.

    No hay nada en la aplicación que impida que la automatización de UI tradicional funcione correctamente. Es posible que deba obtener herramientas actualizadas para ver las aplicaciones de estilo Metro. Algunos se envían con la Vista previa del consumidor. Busque inspect.exe.


Las herramientas de automatización de UI pueden automatizar las aplicaciones de Metro. Verifique RIATest por ejemplo.

A partir de la versión 6.0, una serie de funciones en RIATest están específicamente dirigidas a la automatización de aplicaciones de estilo Metro, particularmente:

  • Posibilidad de estar al tanto de Metro UI para que pueda ver simultáneamente su aplicación Metro y RIATest IDE y minimizar el cambio de pantallas de escritorio a pantallas de Metro cuando automatice una aplicación de Metro.

  • Grabación de acciones realizadas en elementos GUI nativos de Windows (incluida Metro GUI). La grabadora analiza el código de secuencia de comandos y reutiliza los nombres de las variables para generar secuencias de comandos grabadas más limpias de forma similar a cómo codificaría manualmente una secuencia de comandos de automatización.

  • Solución perfecta para errores como este en la implementación de Windows UI Automation en Metro UI.

Descargo de responsabilidad: trabajo para Cogitek, la compañía RIATest.