Dans cette leçon, vous allez utiliser la mappe d'objets pour que l'avertissement de reconnaissance d'objet ne soit plus généré. Vous allez également utiliser une expression régulière pour offrir plus de souplesse pour la reconnaissance d'objet.
Dans ClassicsA, la zone du mot de passe a pour nom Remember Password. Dans l'application ClassicsB, cette zone a pour libellé Remember The Password. Lorsque vous avez lancé la lecture du script sur ClassicsB, la reconnaissance d'objet n'a pas établi une correspondance exacte en raison de cette différence.
Le curseur se place dans la marge gauche, au niveau du numéro de ligne recherché.
RememberPassword().clickToState(SELECTED);Cette ligne indique que vous avez cliqué sur la case à cocher du mot de passe. Dans le script, elle indique l'objet qui a échoué. Vous pouvez maintenant rechercher cet objet dans la mappe d'objets.
Le texte de tous les objets apparaît maintenant en noir. Les nouveaux objets apparaissent en bleu tant qu'ils n'ont pas été acceptés dans une mappe. Vous devez accepter les objets dès que vous consultez une mappe d'objets nouvellement créée.
Comme vous pouvez le constater, il s'agit de l'objet provenant de l'application ClassicsA, car rememberPassword est indiqué dans la propriété accessibleContext.accessibleName. Il s'agit de l'ancien objet. Toutefois, lors de la lecture du script sur l'application ClassicsB, le texte de l'objet a changé et ce dernier est reconnu en tant que nouvel objet par Functional Tester. Etant donné que vous souhaitez utiliser les propriétés du nouvel objet, vous devez ajouter ce dernier à la mappe.
La fenêtre Member Logon s'ouvre.
Cela équivaut au sélecteur d'objet dans la page Sélection d'un objet de l'assistant des points de vérification.
Après avoir coché cette case, vous pourrez constater que la propriété accessibleContext.accessibleName prend désormais pour valeur Remember the password. Etirez les bordures de la mappe d'objets pour visualiser les propriétés.
Le nouvel objet case à cocher n'apparaît pas dans la mappe d'objets.
L'ancien et le nouvel objet sont maintenant répertoriés dans la mappe. Vous souhaitez unifier ces deux objets et prendre sur chacun d'eux les propriétés à affecter au nouvel objet.
L'assistant Unification des objets de test s'affiche.
Les propriétés de l'objet d'origine apparaissent dans la section du bas à gauche. Elles doivent avoir pour libellé "Source: RememberPassword." Cela correspond au texte affecté à la case à cocher dans ClassicsA. Dans la section du bas à droite, elles doivent avoir pour libellé "Target: RememberThePassword." Cela correspond au texte affecté à la case à cocher dans ClassicsB.
Etant donné que vous avez fait glisser l'ancien objet sur le nouveau, les propriétés de reconnaissance du nouvel objet sont remplies au niveau supérieur de l'assistant. En général, Functional Tester place les nouvelles propriétés au niveau supérieur s'il s'agit des propriétés préférées. Cependant, d'anciennes propriétés d'administration peuvent être privilégiées. Par exemple, Functional Tester conserve des expressions régulières dans l'ancien ensemble de propriétés. Pour utiliser une propriété de l'ancien objet, cliquez deux fois dessus dans la grille de l'ancien objet afin de la copier dans l'objet unifié. Dans ce cas, nous souhaitons utiliser toutes les propriétés du nouvel objet, qui sont déjà renseignées.
Tous les scripts affectés par cette modification dans la mappe d'objets sont répertoriés. Un seul script, Classics, est affecté.
L'exécution du script aboutit sans qu'aucun avertissement soit généré ! Vous pouvez constater que la lecture ne s'interrompt plus au niveau de l'objet case à cocher du mot de passe car les propriétés de reconnaissance concordent.
La fonction d'unification d'objet permet aisément de mettre à jour des scripts lorsque les propriétés de reconnaissance d'un objet sont modifiées de manière intentionnelle. Si la mappe d'objets est utilisée par un grand nombre de scripts, cette fonction a pour avantage principal de mettre à jour tous les scripts lorsque vous effectuez des modifications dans l'assistant. Au lieu d'éditer manuellement plusieurs scripts, vous pouvez effectuer la modification une seule fois dans la mappe et propager celle-ci automatiquement à tous les scripts qui utilisent la mappe. Cette fonction peut vous faire gagner du temps.