J'écris des scripts Selenium depuis un certain temps en Java. J'ai rencontré un problème très étrange aujourd'hui.
Voici le problème: j'ai effacé un champ de texte en utilisant la méthode webelement.clear (), plus tard lors de l'exécution de la commande suivante (événement de clic), la zone de texte que j'avais précédemment effacée, est maintenant remplie avec la valeur précédemment remplie.
Voici l'extrait de code:
mobileNumField.get(0).clear();
Thread.sleep(4500);
emailAddress.get(0).click();
emailAddress.get(0).clear();
Thread.sleep(4500);
emailAddress.get(0).sendKeys(Keys.TAB);
Il est possible que l'attribut autocomplete
des champs que vous essayez de remplir soit activé. [Référence]
Si clear()
fonctionne lorsque la ligne s'exécute, il est sûr de dire que ce n'est pas un problème spécifique au pilote Web.
Il serait utile que vous puissiez afficher l'extrait html de la section de page sur laquelle vous travaillez.
Domaines possibles de débogage:
Bonne chance!
PS: Ces Thread.sleep
(s) ne sont pas recommandés.
Je ne connais pas la raison exacte pour laquelle votre élément conserve sa valeur, mais vous pouvez essayer un nettoyage alternatif en envoyant les touches "Ctrl + A" et "Supprimer" à l'élément:
emailAddress.sendKeys(Keys.chord(Keys.CONTROL,"a", Keys.DELETE));
Une autre façon qui a fonctionné pour moi en python, mais ce n'est pas ce que vous appelleriez élégant:
for _ in range(4):
risk_percentage.send_keys(Keys.BACK_SPACE)
Face à un problème similaire. Le champ de saisie est effacé mais le message d'erreur n'est pas mis à jour. Il semble que certains champs de saisie fonctionnent correctement uniquement si vous saisissez et supprimez un caractère:
element.sendKeys(text);
element.sendKeys(Keys.SPACE, Keys.BACK_SPACE);