Sendkeys échoue sur android appium pilote
Je suis en utilisant appium pour automatiser des applications android. En ce que, dans l'impossibilité d'effectuer sendkeys() sur des champs de texte pour le cas ci-dessous:
En cliquant sur Ajouter une option pour le Client. Une nouvelle page s'ouvre. Je suis en train d'essayer d'entrer des valeurs dans les champs de texte. J'ai été en mesure de trouver les champs de texte sur la page à l'aide de xpath. Et j'ai été en mesure de cliquer sur le champs de texte. Mais Quand je l'execute sendkeys(), est un échec.
Consultez les captures d'écran ci-dessous.
Lien:1-Avant d'ajouter des clients(page 1)
Lien:2-Ajouter le client de la Nouvelle page qui s'ouvre(page 2) et en essayant de saisir les détails
Lien:3-Après la fermeture de la page qui s'ouvre(page 2) et à l'atterrissage, page-1
- Cas de test n'est pas un échec pour le cas ci-dessus.J'ai connecté un périphérique réel à l'aide d'un câble USB. À l'aide de l'inspecteur, j'ai trouvé et cliqué sur l'élément en particulier. Quand je tape du texte et appuyez sur sendkeys, le texte saisi n'est pas affiché sur l'appareil. Toutes les suggestions?
- Est-il possible d'utiliser sendkeyEvent pour entrer du texte à l'aide de la andriod clavier. Si oui,quelqu'un peut-il me donner un exemple
Vous devez vous connecter pour publier un commentaire.
Je peux envoyer les clés android champ de texte, en tapant sur le clavier android avec AppiumDriver.sendKeyEvent(int key):
Vous pouvez utiliser une boucle pour envoyer tous les personnages de votre chaîne à l'aide de la clé android conseil d'administration de cette façon. Utiliser android.vue.KeyEvent ou convertir les caractères de code de la clé (int) vous
driver.findElement(By.xpath("//android.widget.ScrollView[1]/android.widget.EditText[1]")).click(); ((AppiumDriver) driver).sendKeyEvent(29); ((AppiumDriver) driver).hideKeyboard();
Des suggestions?Essayez de lui envoyer un .Événement Click() de l'élément premier de sorte que le clavier apparaît (ce qui pourrait avoir pour le mettre en sommeil pendant une seconde ou deux pour lui donner le temps de dessiner sur l'écran). Ensuite, essayez le sendKeys() la méthode. Cela a fonctionné pour moi.
Si cela ne fonctionne toujours pas, une autre solution est d'utiliser de la bad. La commande suivante va envoyer du texte à l'élément actif.
Le moyen le plus facile est de prendre les objets textfield comme une liste et ensuite transmettre les valeurs individuellement. Dans votre cas, je suppose que le code sera comme:
cela a fonctionné pour moi bien dans l'émulateur android et dans l'appareil trop.
Je peux saisir un texte ou d'envoyer des clés d'une application android zone de texte à l'aide du code ci-dessous:
Vous pouvez trouver de l'id de l'élément à l'aide de android uiautomatorviewer voir comment utiliser ici Peut-on trouver l'élément par son ID dans appium
Espérons que cela peut vous aider.