J'ai un champ de recherche dans mon application et j'ai défini le type de clé de retour du clavier pour ce champ sur Cet appel échoue car la touche avec nom "Suivant 'n'est pas trouvé. J'ai fait une vidage de tous les éléments de mon application à l'aide de: p> ceci révèle qu'il y a en effet une clé dans le clavier avec le nom "Suivant", mais mon tenter de le récupérer comme indiqué ci-dessus échoue encore. Je peux toutefois récupérer d'autres clés (comme la clé de la lettre 'U') à l'aide de cette méthode. Y a-t-il un problème connu ici ou je fais quelque chose de mal? P> J'ai essayé d'autres variations sans chance: p> voici une capture d'écran des éléments de mon uiakeyboard: p> p> p> p > UIRETURNKEYNEXT CODE>. Je tente d'écrire un test uautomation qui clique sur le bouton suivant kbd> du clavier à l'aide de la ligne suivante:
5 Réponses :
Je n'ai pas d'exemple à tester, mais comme le bouton "Suivant" est un uabutton, et non un uiakey, vous pouvez essayer: si cela ne fonctionne pas, Vous pouvez également essayer p>
J'ai essayé les deux et n'avait pas de chance. Merci pour les suggestions cependant.
Julien, votre réponse m'a invité à jouer à nouveau avec cela et à utiliser la fonction Boutons () a conduit à une solution de travail. Voici ce qui fonctionne pour moi: uiatarget.localtarget (). FRONTHIPLOP (). MainWindow (). Clavier () .buttons (). Firstwi thprédicate ("nom contient [C]" suivant ""); Il me semble que ces boutons () ["Suivant"] auraient dû travailler et je ne sais pas pourquoi ce n'est pas le cas, mais ce qui précède fonctionne. Merci pour la suggestion.
Les œuvres suivantes pour moi:
UIATarget.localTarget().frontMostApp().mainWindow().keyboard().buttons().firstWiââthPredicate("name contains[c] 'next'");
Si vous voulez simplement cliquer dessus et que vous savez que le clavier a "Next" comme "Touche de retour" (défini dans votre NIB), vous pouvez utiliser ceci:
app.keyboard().typeString("\n");
Pour moi, le clavier ne tombe pas sous MainWindow () dans la hiérarchie de vue. Il est au même niveau que MAINWINDOW () lorsque vous logelementalTree () du haut niveau. Donc, ce que vous voulez faire est de:
UIATarget.localTarget().frontMostApp().keyboard().buttons()["next"];
L'approche de Jelle a travaillé pour moi. Mais j'ai aussi trouvé une solution alternative si quelqu'un en avait besoin. où vous pouvez créer XCuiapplication () en tant que singleton sur chaque session de test d'interface utilisateur. La chose à propos de cette approche est que vous pouvez désormais distinguer entre Vous pouvez aller supplémentaire et Faites quelque chose comme suit: p> et vous pouvez l'utiliser comme: p> retour code> et
effectué code> et d'autres variantes et même vérifier leur existence. P>