Domanda

Ho un programma che sto testando che ha il suo pulsante di chiusura attivato ad un certo punto e disabili in un altro. UISpy mostra 'isEnabled' in entrambi i punti per essere 'vero' UIAVerify mostra 'isEnabled' al primo punto di essere 'vero' e al secondo per essere 'falsa'

Il secondo è quello che posso confermare visivamente per essere vero, a livello di codice sto ottenendo gli stessi valori di UISpy e il mio banco di prova sta venendo a mancare.

utilizzando System.Windows.Automation;

struttura ad albero: "Dialog" "ProgramName" "Barra del titolo" "ProgramName" "Tasto" "Chiudi"

C'è qualcuno a conoscenza di quello che potrebbe essere la causa? Non UIA Verificare utilizzare una libreria diversa rispetto UISpy?

È stato utile?

Soluzione

UIA Verificare 2.0 utilizza la libreria nativa UIA COM più recente che è stato rilasciato nel 3,0 aggiornamento UIA insieme a Windows 7 (disponibile anche come KB971513 hotfix separato per Vista e XP SP3). UISpy d'altra parte penso che utilizza l'API gestita originale.

Ho avuto problemi intermittenti con la libreria gestita con le .isEnabled() e .invoke() metodi che sono stato in grado di correggere migrando verso la libreria COM, che sembra essere più stabile e veloce complessiva rispetto alla libreria gestita.

non riesco a ricordare la specificità del processo di migrazione sopra, ma in fondo avrete bisogno per produrre un DLL di interoperabilità che permetterà l'applicazione .NET per chiamare i metodi UIA nativi. Poi si può opzionalmente creare la propria libreria wrapper o, eventualmente, utilizzare uno di quelli menzionati qui di seguito.

Mi consiglia riferimento a questi per aiuto nel fare la transizione:

  • UI Automation COM-to-.NET adattatore - Un primo tentativo di creare un wrapper per l'API COM. Ho avuto problemi solo verso l'alto utilizzo di questo, ma è stato utile per dare un'occhiata a inizialmente. Cerca anche per alcuni dei messaggi del forum di supporto MSDN circa l'API COM fatta dallo sviluppatore di questo wrapper. Io purtroppo non riesco a collegare a loro a causa del mio basso StackOverflow rep (molto tempo lurker, prima risposto volta).

  • UIA Verifica del codice sorgente - Si può vedere che essi hanno nel loro codice sorgente di un UIAComWrapper che viene utilizzato per accedere all'interfaccia COM. Si può anche dare un'occhiata a quel progetto a come stanno producendo la DLL di interoperabilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top