Par exemple, prenons le cas du test d'une application HTML et supposons que plusieurs instances du navigateur soient actives. Si les actions sur la barre d'outils ont été enregistrées de la manière suivante, à la lecture du script, il est impossible de savoir à quelle instance ces actions sont destinées :
BrowserToolbar_Back().click() BrowserToolbar_Forward().click()
Dans des cas comme celui-ci, Functional Tester peut éviter toute reconnaissance ambiguë en localisant le bouton de barre d'outils dans l'instance de navigateur identifiée par le document qui y est chargé (ce document constitue alors l'ancre de l'objet cible). Par exemple :
BrowserToolbar_Back(Browser_htmlBrowser(Document_MMaPagePerso(), DEFAULT), DEFAULT).click();
Le bouton Précédent (Back) de la barre d'outils est ancré par le navigateur, lui-même étant ancré par le document "MaPagePerso". Bien sûr, cela ne fonctionne pas si le même document est chargé dans chaque instance du navigateur. Notez que les méthodes du script auxiliaire qui prennent une ancre comme argument doivent aussi recevoir un autre argument qui spécifie l'état du composant (l'argument DEFAULT dans l'exemple ci-dessus). L'état par défaut des objets HTML est LOADED (chargé). Pour les composants HTML, les états LOADING (en cours de chargement) et UNINITIATED (non initialisé) sont également possibles. L'état par défaut des objets Java est SHOWING (visible) et ENABLED (activé). Les autres fanions d'état reconnus pour les objets Java sont NOT_SHOWING (non visible) et DISABLED (désactivé).
Vous pouvez aussi identifier l'instance de navigateur en lui affectant une référence TestObject et en invoquant sa méthode find comme suit (n'oubliez pas de désenregistrer le TestObject lorsque vous n'en avez plus besoin) :
TestObject monNavigateur = Browser_htmlBrowser(Document_MaPagePerso(), DEFAULT).find();
Dans le script de test, les actions sur la barre d'outils du navigateur ressembleraient alors à l'exemple suivant :
BrowserToolbar_Back(monNavigateur, DEFAULT).click();
Une autre situation sujette aux reconnaissances ambiguës est le cas d'un test portant sur plusieurs applications exécutées en même temps. du script, des commandes telles que b5().click() sont ambiguës. Cependant, comme la commande startApp renvoie un ProcessTestObject, celui-ci peut être utilisé comme référence pour spécifier à quelle application s'adresse une commande particulière. Par exemple :
ProcessTestObject p1 = startApp("SwingTest"); ProcessTestObject p2 = startApp("TryIt"); ... //b5().click(); ambigu à la lecture ; quelle application ? b5(p1, DEFAULT).click();
Sur la dernière ligne de cet exemple, le ProcessTestObject agit comme une ancre permettant de localiser l'application souhaitée. Notez qu'il n'est pas nécessaire d'appeler la méthode de désenregistrement (unregister) pour un ProcessTestObject.