2 votes

iPhone - Automatisation de l'interface utilisateur - Tapez avec UIAKeyboard

J'utilise UIAutomation pour tester mon application iPhone.
Mon application a une UISearchBar après l'avoir ciblé,
cette ligne de script montre que l'application a maintenant 2 UIAWindow .

UIATarget.localTarget().frontMostApp().logElementTree();

Le deuxième UIAWindow a UIAKeyboard en tant qu'enfant.

enter image description here

Savez-vous comment obtenir une référence de la seconde ? UIAWindow afin que je puisse obtenir une référence au UIAKeyboard ?

J'ai essayé

UIATarget.localTarget().frontMostApp().mainwindow()[1].keyboard().key()["Q"].tap();

mais cela ne fonctionne pas.

EDIT 1 :
J'utilise cette ligne pour obtenir la référence du clavier. Cela fonctionne.

UIATarget.localTarget().frontMostApp().windows()[1].logElementTree();

mais lorsque j'ai essayé de taper quelque chose avec le clavier :

UIATarget.localTarget().frontMostApp().keyboard().typeString("Hello world");

ou

UIATarget.localTarget().frontMostApp().keyboard().keys()["A"].tap; 

mais ils ne fonctionnent pas.

Savez-vous taper quelque chose au clavier ?


E (juste pour que vous sachiez comment faire fonctionner l'UIAKeyboard pour vous)


UIATarget.localTarget().frontMostApp().keyboard().keys()["A"].tap ;
ne fonctionne pas
UIATarget.localTarget().frontMostApp().keyboard().keys()["A"].tap() ;
travaux

et
UIATarget.localTarget().frontMostApp().keyboard().typeString("Ceci est un message") ;
travaux

2voto

Farhan Ahmed Wasim Points 584

Les deux derniers extraits de code que vous avez postés devraient fonctionner, mais ils ne fonctionnent que si votre clavier est ouvert (visible à l'écran). Une autre façon de procéder est d'accéder au champ de texte (où vous voulez taper ce que vous essayez de taper) et d'appeler la fonction .setValue("Hello world") o .typeString("Hello world") . Ces deux fonctions sont des fonctions de l'objet textField. J'espère que cela vous aidera.

0voto

bentford Points 9981

Pour taper avec le clavier une fois qu'il est à l'écran :

UIATarget.localTarget().frontMostApp().keyboard().typeString("This is a message");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X