2012-05-01 19 views
16

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.¿Cómo hacer la automatización de la interfaz de usuario de las aplicaciones Metro-Style?

Antecedentes: Tengo muchas pruebas automatizadas que usan el Microsoft UI Automation API's para interactuar con aplicaciones. Los guiones están escritos en IronRuby contra .NET 4

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

According to Microsoft, debe ser la interfaz de usuario normal de Automatización de API poder acceder y controlar las aplicaciones estilo metro, pero el problema es que no puedo entender cómo mi código realmente puede acceder a la interfaz de usuario de las aplicaciones metropolitanas. Nuestra forma normal de ver los datos de automatización de UI es usando UISpy, sin embargo, cuando ejecuto UI spy bajo Windows 8 y abro 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 automáticos?

+0

Para aclarar: ¿está utilizando la pila XAML o HTML5? No estoy seguro porque no he intentado hacer la automatización de UI en ninguno de estos, pero creo que podría ser un poco diferente dependiendo de su elección. –

+0

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.automation.aspx –

+0

Aún no estoy escribiendo aplicaciones de metro, en este momento solo me gustaría ver la pantalla de inicio (y posiblemente algunas de las aplicaciones de metro integradas, como el correo), que supongo que son Xaml/C++ ?? –

Respuesta

1

WinRT (también conocido como "Metro Style") las aplicaciones se ejecutan en un sandbox. No puede perforar las paredes entre las aplicaciones, incluidas las aplicaciones de escritorio. Esto incluye el aislamiento de la red (no puede hacer referencia 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 sandbox el que impide que UISpy vea la aplicación WinRT ejecutándose 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.

6

Unos pocos recursos en la automatización de la interfaz de usuario que trabaja en las aplicaciones estilo Metro:

  • Aquí es una demostración de que sample.
  • Aquí hay un blog post que lo explica.
  • Este es un forum thread sobre el tema.

    No hay nada en la aplicación que impida que la automatización de IU 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.

+2

Por cierto, inspect.exe se puede encontrar en una máquina win8 RTM en c: \ archivos de programa (x86) \ Windows Kits \ 8.0 \ bin \ x86 –

2

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

La indicación de la versión 6.0 una serie de características en RIATest están destinados específicamente a metro automatización de aplicación de estilo, en particular:

  • capacidad de permanecer en la cima de Metro UI para que pueda ver simultáneamente su aplicación y metro RIATest IDE y minimiza el cambio de pantallas de escritorio a pantallas de metro cuando se automatiza una aplicación de Metro.

  • Grabación de acciones realizadas en elementos nativos de la GUI de Windows (incluida la GUI de Metro). 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 sin problemas para bugs like this en Windows IU Implementación de automatización en Metro UI.

responsabilidad: yo trabajo para Cogitek, la empresa RIATest.

Cuestiones relacionadas