2012-05-01 14 views
16

Ho scaricato e installato l'anteprima consumer di Windows 8 e mi piacerebbe capire come utilizzare le API di automazione interfaccia utente per ottenere dati da applicazioni in stile metro.Come eseguire l'automazione UI delle app Metro-Style?

Contesto: ho un sacco di test automatici che usano il Microsoft UI Automation API's per interagire con le applicazioni. Gli script sono scritti in IronRuby contro .NET 4

Inizialmente, mi piacerebbe semplicemente piace per verificare se il menu di avvio è visibile (e in caso affermativo, chiuderlo)

According to Microsoft, l'interfaccia utente normale Automation API dovrebbe essere in grado di accedere e controllare le applicazioni in stile metro, ma il problema è che non riesco a capire come il mio codice possa effettivamente accedere all'interfaccia utente delle applicazioni metropolitane? Il nostro modo normale di visualizzare i dati di automazione dell'interfaccia utente è UISpy, tuttavia quando eseguo l'UI spia sotto Windows 8 e apro un'app della metropolitana, non c'è alcun accenno a questo ... sembra che le app della metropolitana (compresa la schermata iniziale) siano murate fuori dal desktop.

Se non riesco a trovare le app della metropolitana in UISpy, come posso trovare quali sono i loro ID di automazione e come posso trovarli dai miei script di test automatici?

+0

Per chiarimenti, stai utilizzando lo stack XAML o HTML5? Non lo so per certo perché non ho provato a fare l'automazione dell'interfaccia utente in nessuno di questi, ma penso che potrebbe essere un po 'diverso a seconda della scelta. –

+0

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

+0

Non sto ancora scrivendo app per la metropolitana, a questo punto mi piacerebbe solo visualizzare la schermata di avvio (ed eventualmente alcune delle app della metropolitana integrate come la posta), che suppongo siano Xaml/C++ ?? –

risposta

1

Le applicazioni WinRT (aka "Metro Style") vengono eseguite in una sandbox. Non è possibile perforare i muri tra le applicazioni, comprese le applicazioni desktop. Ciò include l'isolamento della rete (non è possibile fare riferimento a localhost ad esempio tranne in un ambiente di sviluppo). Ci sono un paio di eccezioni come i contatti Condividi e Cerca che consentono tipi molto specifici di interazioni tra le app.

È questa sandbox che impedisce a UISpy di vedere l'applicazione WinRT in esecuzione in background. Non sono sicuro di come UISpy possa risolvere questo problema senza alcun tipo di eccezione dell'ambiente di sviluppo per la sandbox (simile all'eccezione di isolamento della rete) che non è disponibile nell'anteprima del consumatore.

Sono inoltre inconsapevole di eventuali annunci relativi a quando/se l'API di automazione interfaccia utente sarà supportata per le applicazioni WinRT in questo momento.

6

alcune risorse su automazione interfaccia utente che funziona in applicazioni in stile Metro:

  • Ecco un sample dimostrarlo.
  • Questo è un blog post che lo spiega.
  • Questo è un forum thread sull'argomento.

    Non c'è nulla nell'app che impedisca il corretto funzionamento dell'automazione UI tradizionale. Potrebbe essere necessario ottenere strumenti aggiornati per visualizzare le app in stile Metro. Alcuni spediscono con l'anteprima del consumatore. Cerca inspect.exe.

+2

A proposito, inspect.exe può essere trovato su una macchina win8 RTM sotto c: \ program files (x86) \ Windows Kits \ 8.0 \ bin \ x86 –

2

UI Gli strumenti di automazione possono automatizzare le applicazioni Metro. Controlla ad esempio RIATest.

Affermare dalla versione 6.0 di un certo numero di caratteristiche in RIATest sono specificamente rivolte a Metro automazione applicazione stile, in particolare:

  • capacità di rimanere in cima alla Metro UI per consentire di vedere contemporaneamente l'applicazione Metro e RIATest IDE e minimizza il passaggio dagli schermi desktop a quelli della metropolitana durante l'automazione di un'applicazione Metro.

  • Registrazione di azioni eseguite su elementi della GUI di Windows nativi (inclusa Metro GUI). Il registratore analizza il tuo codice di script e riutilizza i nomi delle variabili per generare script registrati più chiari, simili a come potresti codificare manualmente uno script di automazione.

  • Soluzione alternativa per bugs like this nell'implementazione di automazione dell'interfaccia utente di Windows in Metro UI.

Disclaimer: io lavoro per Cogitek, l'azienda RIATest.

Problemi correlati