web-dev-qa-db-fra.com

effacer le champ de texte en utilisant les touches DELETE ou BACK SPACE dans webdriver

J'essaie d'effacer un champ de texte en utilisant cette action:

emailField.sendKeys("gmail.com");
emailField.sendKeys(Keys.CONTROL,"a",Keys.DELETE);

Dans le code ci-dessus, la dernière ligne sélectionne uniquement le texte, ne le supprime pas, mais si je sépare les actions, cela fonctionne.

emailField.sendKeys(Keys.CONTROL,"a");
emailField.sendKeys(Keys.DELETE);
11
amit dobriyal

Depuis le JavaDoc pour WebElement.clear():

Si cet élément est un élément d'entrée de texte, cela effacera la valeur . N'a aucun effet sur les autres éléments. Les éléments de saisie de texte sont INPUT et Éléments TEXTAREA. Notez que les événements déclenchés par cet événement peuvent ne pas être comme vous vous en doutez. En particulier, nous ne tirons aucun clavier ni aucune souris événements. Si vous voulez vous assurer que les événements de clavier sont déclenchés, considérez en utilisant quelque chose comme sendKeys(CharSequence) avec la touche backspace . À assurez-vous d’obtenir un événement de changement, envisagez de suivre avec un appel à sendKeys(CharSequence) avec la touche de tabulation.

Très probablement, vous devez simplement appeler:

emailField.sendKeys("gmail.com");
emailField.clear();

Mais si vous souhaitez que la suppression soit effectuée au clavier pour une raison quelconque, utilisez backspace .

11
Andrew Regan

keys.DELETE ne peut pas travailler pour supprimer le texte saisi, vous devez utiliser keys.BACKSPACE.

emailField.sendKeys(Keys.BACKSPACE)
10
LPhuang

Depuis le JavaDoc pour Keys.chord

accord (valeur Java.lang.CharSequence ...) Simulez en appuyant sur plusieurs touches à la fois dans un "accord".

Vous devriez pouvoir utiliser

emailField.sendKeys(Keys.chord(Keys.CONTROL,"a",Keys.DELETE));
1
Ann Tabatha

Testé en chrome driver

WE.send_keys(' \b')

Cela va ajouter de l'espace puis le supprimer (backspace)

0
Bassem Shahin
emailField.sendKeys(Keys.BACKSPACE)

ça n'a pas marché pour moi.

J'ai utilisé 'Key' au lieu de 'Keys'

emailField.sendKeys(Key.BACKSPACE)
0
RRR