Gestione del riconoscimento ambiguo

In alcune situazioni durante la riproduzione, Functional Tester potrebbe non essere in grado di distinguere tra due oggetti simili nel software sottoposto a test. In questa sezione viene descritto il modo in cui gestire queste situazioni.

Ad esempio, nelle applicazioni HTML quando è attiva più di un'istanza del browser, riconoscere un browser da un altro sulle azioni della barra degli strumenti può essere impossibile se i browser sono stati registrati come negli esempi seguenti:

BrowserToolbar_Back().click()
BrowserToolbar_Forward().click()

In casi come questo, Functional Tester evita un riconoscimento ambiguo individuando il pulsante della barra degli strumenti nel browser identificato dal suo documento attualmente caricato (indicato come ancora per l'oggetto di destinazione). Ad esempio:

BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(),
  DEFAULT), DEFAULT).click();

Il pulsante Indietro della barra degli strumenti viene ancorato dal browser,che viene ancorato dal documento "My HomePage". Questo esempio, naturalmente, non è valido se ogni istanza del documento ha caricato lo stesso documento. Si noti che i metodi script helper che utilizzano un'ancora come argomento richiedono un altro argomento che specifichi lo stato del componente (l'argomento DEFAULT nell'esempio precedente). Lo stato predefinito per gli oggetti HTML è LOADED. Per i componenti HTML sono anche possibili gli stati LOADING e UNINITIATED. Lo stato predefinito per gli oggetti Java™ è SHOWING e ENABLED. Altri indicatori di stato supportati per gli oggetti Java sono NOT_SHOWING e DISABLED.

Inoltre, è possibile identificare l'istanza del browser utilizzando per essa un riferimento TestObject, richiamando il metodo find sul browser nel seguente modo (ricordarsi, dopo avere finito, di annullare la registrazione):

TestObject browserOne = Browser_htmlBrowser(Document_MyHomePage(),
  DEFAULT).find();

I comandi della barra degli strumenti del browser nello script di test verranno visualizzati come nell'esempio seguente:

BrowserToolbar_Back(myBrowser, DEFAULT).click();

Un'altra situazione in cui il riconoscimento ambiguo potrebbe essere un problema è quando in un test vi è più di un'applicazione in esecuzione contemporaneamente. Durante la riproduzione, comandi come b5().click() sono ambigui. Poiché il comando startApp restituisce un ProcessTestObject, è possibile utilizzare questo riferimento per specificare a quale applicazione si applica un comando particolare. Ad esempio:

ProcessTestObject p1 = startApp("SwingTest");
ProcessTestObject p2 = startApp("TryIt");
...
//b5().click(); ambiguous on playback; which application?

b5(p1, DEFAULT).click();

Nell'ultima riga dell'esempio, le funzioni ProcessTestObject fungono da ancora per individuare l'applicazione desiderata. Notare che richiamare il metodo unregister per un ProcessTestObject non è necessario.


Feedback