Condividi tramite


Estensione Excel di esempio: classe TechnologyManager

Questa classe estende la classe UITechnologyManager ed è responsabile per la fornitura di servizi di base per l'estensione Microsoft Excel. Anche se la classe base dispone di molti metodi, solo un sottoinsieme di questi viene utilizzato in questo esempio.

Alcuni metodi restituiscono solo un valore della proprietà. Molti dei metodi devono consentire allo sviluppatore di eseguire l'override di algoritmi predefiniti incorporati nel motore del test codificato dell'interfaccia utente. Questi metodi generano un oggetto NotSupportedException o restituiscono null, il che indica al framework di utilizzare l'algoritmo predefinito.

A seconda della complessità della tecnologia sottostante, lo sviluppo del codice del gestore tecnologia potrebbe richiedere da alcune settimane ad alcuni mesi. Excel fornisce l'opportunità di creare un gestore tecnologia potenzialmente molto esteso. Questo esempio è limitato intenzionalmente a fogli di lavoro e celle di Excel e utilizza una formattazione limitata.

Quando è possibile, il codice del gestore tecnologia utilizza il canale .NET Remoting aperto dalla classe Communicator per estrarre informazioni dal componente aggiuntivo in esecuzione nel processo di Excel.

Visibilità COM

Si noti che questa classe e ciascuna delle classi di elementi che estendono la classe UITechnologyElement dispongono tutte dell'attributo ComVisibleAttribute con un valore di true per garantire che le classi siano visibili a COM.

Proprietà TechnologyName

Questo override della proprietà UITechnologyManager.TechnologyName deve fornire un nome univoco e significativo che identifichi la tecnologia sottostante per tutti gli altri componenti dell'estensione. Per questa estensione, il valore è "Excel".

Metodo GetControlSupportLevel

Questo override del metodo UITechnologyManager.GetControlSupportLevel restituisce un numero che indica il livello di supporto che il gestore tecnologia può offrire per il controllo rappresentato dall'handle fornito. Quanto più elevato il valore restituito, più il gestore tecnologia sarà in grado di supportare il controllo. In questo caso, il metodo controlla la finestra che contiene il controllo e, se è un Foglio di lavoro di Excel, il metodo restituisce il valore massimo; in caso contrario, restituisce zero, che indica che non è fornito alcun supporto.

Metodi per ottenere un elemento

Sono disponibili molti metodi importanti utilizzati dal framework dei test codificati dell'interfaccia utente per ottenere un elemento specifico della tecnologia mediante un handle, un punto nello schermo o un elemento da una tecnologia diversa. Il codice per questi metodi è di facile comprensione. Di seguito sono descritti i metodi di base:

Metodo ParseQueryId

Quando viene creato un test codificato dell'interfaccia utente, l'utente può specificare valori di proprietà per alcuni o per tutti i controlli nel test. Tali valori di proprietà vengono utilizzati dal framework di test per creare coppie nome/valore, denominate proprietà di ricerca, utilizzate per trovare controlli dell'interfaccia utente specifici nel corso del test. Tutte le proprietà di ricerca rappresentano insieme il valore della proprietà UITechnologyElement.QueryId di ogni elemento nella tecnologia che include ciascun controllo. Poiché un controllo potrebbe dover essere trovato molte volte durante un test, questo metodo fornisce al gestore tecnologia un modo per ottimizzare l'analisi delle proprietà di ricerca per il controllo specificato. Questo metodo restituisce anche un cookie che il framework può utilizzare per ricerche successive relative a quel controllo. Questa implementazione del metodo utilizza il metodo AndCondition.Match per analizzare le proprietà di ricerca.

Metodo MatchElement

Per eseguire una ricerca di controlli dal gestore tecnologia, è possibile implementare il metodo UITechnologyManager.Search per restituire una matrice di possibili corrispondenze oppure generare l'eccezione NotSupportedExceptionche indica al framework di utilizzare il proprio algoritmo di ricerca. In ogni caso, è necessario implementare il metodo MatchElement laddove questa implementazione utilizzi nuovamente il metodo AndCondition.Match.

Metodi di navigazione

Questi metodi ottengono l'elemento padre, gli elementi figlio o elementi di pari livello dell'elemento fornito dalla gerarchia di interfacce utente. Il codice è semplice e commentato in modo chiaro.

Metodo interno GetExcelElement

Questo metodo interno ottiene un handle di finestra e informazioni su un elemento Excel, quindi restituisce l'elemento Excel richiesto.

Vedere anche

Riferimenti

UITechnologyManager

NotSupportedException

UITechnologyElement

ComVisibleAttribute

QueryId

Altre risorse

Estensione di test codificati dell'interfaccia utente e registrazioni delle azioni per supportare Microsoft Excel