Selenium: Comment utiliser javascript pour effacer une valeur d'un champ de formulaire?
-
06-07-2019 - |
Question
J'utilise l'IDE de sélénium et le support Selenium-Fitnesse Bridge et j'essaie de tester que lorsque j'efface une valeur par défaut d'un champ de formulaire, mon formulaire affiche un message d'erreur.
Ainsi, lorsque j’enregistre avec Selenium IDE, cela équivaut à dire à Selenium de ne rien taper.
| type | text_field | |
Le problème, c'est que le fixture Fitnesse que j'utilise s'attend à ce que le deuxième argument ne soit pas nul.
Existe-t-il un moyen dans Selenium de "supprimer une valeur"? plutôt que de "ne rien taper"?
La solution 2
Je l'ai utilisé pour le faire fonctionner. reg_start_date
est l'identifiant de mon champ d'entrée.
| storeEval | window.document.getElementById('reg_start_date').value = '' |
À partir de la référence sélénium:
Notez que, par défaut, l’extrait de code s’exécutera dans le contexte de l'option "sélénium". l'objet lui-même, donc
this
fera référence à l'objet Selenium. Utilisezwindow
pour faire référence à la fenêtre de votre application, par exemple.window.document.getElementById ('foo')
Évitez également d’envelopper le code javascript avec javascript {}, cela ne fonctionnera pas.
Autres conseils
Vous pouvez le faire via JavaScript tel quel:
| verifyEval | javascript{this.browserbot.getCurrentWindow().document.getElementById('CONTROL_ID').value = ''} ||
En fait, l'instruction verifyEval vous permet d'exécuter n'importe quel élément de javascript que vous souhaitez. Certains problèmes difficiles à résoudre avec le sélénium sont beaucoup plus simples.
J'ai utilisé ce didacticiel pour le comprendre out.
Nous avons également eu ce problème au début. Essayez: | type | text_field | vide |
Recherchez plus d’informations sur la documentation Fitnesse concernant l’utilisation des espaces vierge et null.
: