Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa panoramica descrive come l'automazione interfaccia utente Microsoft può essere utile come framework per l'accesso a livello di codice in scenari di test automatizzati.
Automazione interfaccia utente offre un modello a oggetti unificato che consente a tutti i framework dell'interfaccia utente di esporre funzionalità complesse e avanzate in modo accessibile e facilmente automatizzato.
Automazione interfaccia utente è stata sviluppata come successore di Microsoft Active Accessibility, un framework progettato per offrire una soluzione per rendere accessibili controlli e applicazioni. Microsoft Active Accessibility non è stato progettato tenendo conto dell'automazione dei test, anche se si è evoluto in tale ruolo a causa dei requisiti simili di accessibilità e automazione. Automazione interfaccia utente è progettata specificamente per offrire funzionalità affidabili per i test automatizzati, oltre a fornire soluzioni più perfezionate per l'accessibilità. Ad esempio, Microsoft Active Accessibility si basa su una singola interfaccia per esporre informazioni sull'interfaccia utente e per raccogliere le informazioni necessarie per i prodotti assistive technology; Automazione interfaccia utente separa i due modelli.
Sia un provider che un client devono implementare l'automazione interfaccia utente perché sia utile come strumento di test automatizzato. I provider di automazione interfaccia utente sono applicazioni, ad esempio Microsoft Word, Microsoft Excel e altre applicazioni o controlli di terze parti basati sul sistema operativo Windows. I client di automazione interfaccia utente includono script di test automatizzati e applicazioni di assistive technology.
Questo argomento contiene le sezioni seguenti.
- automazione interfaccia utente di nei provider
- Automazione dell'interfaccia utente nei client
- Le proprietà chiave per l'automazione dei test
- strumenti e tecnologie correlati
- argomenti correlati
Automazione interfaccia utente nei provider
Per automatizzare un elemento dell'interfaccia utente, lo sviluppatore deve esaminare le azioni che un utente finale può eseguire sull'oggetto dell'interfaccia utente usando l'interazione standard tramite tastiera e mouse. Dopo aver identificato queste azioni chiave, i pattern di controllo di automazione interfaccia utente che rispecchiano la funzionalità e il comportamento dell'elemento dell'interfaccia utente devono essere implementati nel controllo. Ad esempio, l'interazione dell'utente con un controllo casella combinata comporta in genere l'espansione e la compressione della casella combinata per visualizzare o nascondere un elenco di elementi, la selezione di un elemento dall'elenco o l'aggiunta di un nuovo valore tramite input da tastiera.
Con altri modelli di accessibilità, gli sviluppatori devono raccogliere informazioni direttamente da singoli pulsanti, menu o altri controlli. Ogni tipo di controllo è disponibile in decine di varianti secondarie. In altre parole, anche se 10 varianti di un pulsante di push funzionano allo stesso modo e eseguono la stessa funzione, devono essere tutti considerati come controlli univoci. Non c'è modo di sapere che questi controlli sono funzionalmente equivalenti. I pattern di controllo di automazione interfaccia utente sono stati sviluppati per rappresentare questi comportamenti di controllo comuni. Per ulteriori informazioni, vedere Panoramica sui modelli di controllo dell'automazione interfaccia utente.
Senza il modello unificato dei pattern di controllo forniti da Automazione interfaccia utente, gli strumenti di test e gli sviluppatori devono avere informazioni specifiche del framework per esporre proprietà e comportamenti di controllo in tale framework. Poiché diversi framework dell'interfaccia utente possono essere presenti contemporaneamente nei sistemi operativi Windows, tra cui Microsoft Win32, Windows Forms e Windows Presentation Foundation (WPF), può risultare arduo testare più applicazioni con controlli che sembrano simili. Ad esempio, nella tabella seguente sono elencati i nomi di proprietà specifici del framework necessari per recuperare il nome o il testo associato a un controllo pulsante e mostra la proprietà di automazione interfaccia utente equivalente.
Tipo di controllo | Framework dell'interfaccia utente | Proprietà specifica del framework | Proprietà dell'automazione dell'interfaccia utente |
---|---|---|---|
Pulsante | WPF (Windows Presentation Foundation) | Contenuto | Proprietà Nome |
Pulsante | Win32 | Didascalia | Proprietà Nome |
Immagine | HTML | Alt | Proprietà Nome |
I provider di automazione interfaccia utente sono responsabili del mapping delle proprietà specifiche del framework dei relativi controlli alle proprietà equivalenti di automazione interfaccia utente. Per informazioni sull'implementazione dell'automazione interfaccia utente in un provider, vedere UI Automation Provider Programmer's Guide. Per informazioni sull'implementazione dei pattern di controllo, vedere Implementazione dei modelli di controllo di automazione interfaccia utente.
Automazione interfaccia utente nei client
L'obiettivo degli strumenti e degli scenari di test automatizzati è la manipolazione coerente e ripetibile dell'interfaccia utente. Ad esempio, questo può comportare controlli specifici di unit test e la registrazione e l'esecuzione di script di test che eseguono un'iterazione di una serie di azioni generica in un gruppo di controlli.
Una complicazione nelle applicazioni automatizzate è la difficoltà di sincronizzare un test con una destinazione dinamica, ad esempio un controllo casella di riepilogo, ad esempio Gestione attività di Windows, che visualizza un elenco di applicazioni attualmente in esecuzione. Poiché gli elementi nella casella di riepilogo vengono aggiornati dinamicamente all'esterno del controllo dell'applicazione di test, un tentativo di ripetere la selezione di un elemento specifico nella casella di riepilogo con qualsiasi coerenza è impossibile. Problemi simili possono verificarsi quando si tenta di ripetere semplici cambiamenti di focus in un'interfaccia utente non controllata dall'applicazione di test.
Accesso programmato
L'accesso a livello di codice consente di imitare, tramite codice, qualsiasi interazione ed esperienza esposta dal tradizionale input del mouse e della tastiera. L'automazione dell'interfaccia utente consente l'accesso a livello di codice tramite cinque componenti:
- L'albero di automazione interfaccia utente facilita lo spostamento attraverso la struttura dell'interfaccia utente. L'albero viene creato dalla raccolta di HWNDs. Per ulteriori informazioni, consultare Panoramica dell'albero di Automazione UI .
- Gli elementi di automazione sono singoli componenti nell'interfaccia utente. Spesso possono essere più granulari rispetto a un HWND.
- Le proprietà di automazione forniscono informazioni specifiche sugli elementi dell'interfaccia utente. Per ulteriori informazioni, consultare la sezione "Panoramica delle proprietà di automazione della UI" .
- I pattern di controllo definiscono un particolare aspetto della funzionalità di un controllo; possono essere costituiti da informazioni su proprietà, metodo, evento e struttura. Per ulteriori informazioni, vedere UI Automation Control Patterns Overview.
- Gli eventi di automazione forniscono notifiche e informazioni sugli eventi. Per altre informazioni, vedere la Panoramica degli eventi di automazione dell'interfaccia utente.
Proprietà chiave per l'automazione dei test
La possibilità di identificare e individuare in modo univoco qualsiasi controllo nell'interfaccia utente fornisce la base per il funzionamento delle applicazioni di test automatizzate su tale interfaccia utente. Le proprietà di automazione interfaccia utente usate da client e provider per identificare e individuare i controlli sono descritte nella tabella seguente.
Proprietà | Descrizione |
---|---|
AutomationId | Distingue in modo univoco un elemento di automazione dai suoi fratelli. Il supporto per la proprietà AutomationId non è obbligatorio. Quando è disponibile, la proprietà AutomationId di un elemento è la stessa in qualsiasi istanza dell'applicazione, indipendentemente dalla lingua locale. Anche se la proprietà AutomationId è univoca tra gli elementi di pari livello, potrebbe non essere univoca nell'intero desktop. Ad esempio, più istanze di un'applicazione o più visualizzazioni di cartelle in Microsoft Windows Explorer possono contenere elementi con lo stesso AutomationIdProperty, ad esempio "SystemMenuBar". I client non devono fare ipotesi relative agli AutomationId esposti da altre applicazioni. AutomationId non è garantito che sia stabile tra versioni diverse o compilazioni di un'applicazione. |
Tipo di Controllo | Identifica il tipo di controllo rappresentato da un elemento di automazione. È possibile dedurre informazioni significative dalla conoscenza del tipo di controllo. Per ulteriori informazioni, vedere Panoramica tipi di controllo dell'automazione dell'interfaccia utente. |
Nome | Stringa di testo che identifica o spiega lo scopo di un elemento di automazione. Deve essere usato con cautela perché può essere localizzato. La proprietà Name non è un identificatore univoco tra elementi di pari livello. Per l'automazione dei test, i client devono usare invece la proprietà AutomationId o RuntimeId. |
RuntimeId | Matrice di numeri interi che rappresentano un identificatore per un elemento di automazione. L'identificatore è univoco sul desktop, ma è garantito che sia univoco solo per l'interfaccia utente del desktop in cui è stato generato. Gli identificatori possono essere riutilizzati nel tempo. Usare IUIAutomation::CompareElements per determinare se l'elemento con un ID di runtime specifico è lo stesso elemento che in precedenza aveva tale ID. Inoltre, il formato della proprietà RuntimeId può cambiare. Deve essere considerato come un valore opaco e usato solo per il confronto; Ad esempio, per determinare se un elemento di automazione si trova nella cache. |
Strumenti e tecnologie correlati
Inspect (Inspect.exe) è uno strumento basato su Windows che è possibile usare per raccogliere informazioni sull'automazione interfaccia utente per lo sviluppo e il debug di provider e client. Inspect è incluso in Windows Software Development Kit (SDK).
Argomenti correlati