Comment puis-je tester des boîtes de dialogue modales avec Sélénium?
-
22-08-2019 - |
Question
Je suis en train commencé par Selenium IDE et essayer de tester une webapp qui est plein de boîtes de dialogue modales (window.showModalDialog
) .
Enregistrement le test semble fonctionner (sauf qu'il n'y a rien dans le journal lorsque la fenêtre de dialogue), mais ils ne lisent pas correctement. Le script ouvre effectivement la fenêtre (déclenchée par un bouton clic), mais attend juste indéfiniment.
Toutes les suggestions?
La solution
De FAQ Sélénium , Sélénium fonctionne apparemment avec certains types de dialogues, mais pas d'autres:
Je ne peux pas interagir avec une boîte de dialogue pop-up. Mon test arrête dans ses pistes!
Vous pouvez, mais seulement si la boîte de dialogue est un dialogue d'alerte ou de confirmation. Autre dialogues spéciaux ne peuvent être révoqués par javascript, et donc ne peut actuellement pas interagir. Ceux-ci comprennent les « Enregistrer le fichier », « Souviens-toi ce mot de passe » (Firefox), et les boîtes de dialogue modales (IE). Quand ils apparaissent, Sélénium ne peut essorer ses mains dans le désespoir.
Pour résoudre ce problème, vous pouvez utiliser un solution (le cas échéant); autrement vous pouvez avoir à exclure le test de votre corpus automatisé. Pour le « Enregistrer Fichier » dialogue dans Firefox, une coutume modèle peut être spécifié lors de l'exécution via le RC qui sera toujours provoquer la fichier à télécharger à un spécifié emplacement, sans interroger l'utilisateur (voir http://forums.openqa.org/thread.jspa?messageID=31350). La boîte de dialogue « Rappelez-vous ce mot de passe » ne devrait pas apparaître à nouveau une fois que vous avez choisi de se souvenir. actuellement, est pas grand-chose qui peut être fait à propos de IE les boîtes de dialogue modales.
Je me souviens quelqu'un qui travaille autour de ce avec un AutoHotKey script qui a rejeté la boîte de dialogue.
Autres conseils
J'utilise Selenium IDE pour tester jQuery modaux depuis un certain temps maintenant, je ne fait face à aucun problème. Voici les choses que je fais pour faire en sorte que le test exécute correctement sur la lecture:
- exécuter le script à la vitesse la plus lente possible
- lorsque le modal ouvre, j'utilise la commande waitForElementPresent pour vérifier la présence d'au moins un des éléments constitutifs de la page; argument étant, si l'on charge de l'élément correctement, il est raisonnable de supposer que tous les éléments et par conséquent la fenêtre modale chargés correctement.
Espérons que cela aide. Si vous souhaitez obtenir un complément d'aide, vous pouvez partager le code avec moi alongwith l'erreur dans l'exécution que IDE jette à vous.
fenêtre Modal piraté :) http://seleniumdeal.blogspot.com/2009/ 01 / manutention intermodale-fenêtre avec-selenium.html
Voici comment je gère pop-up d'alerte dans IDE Sélénium
clic droit sur l'élément (dans ce cas, la fenêtre de pop-up) il y a quelques commande que vous pouvez choisir. Il y a aussi un spectacle toutes les commandes disponibles whiche pourrait être une aide. Vous devez utiliser AssertElementPreset et je pense que le meilleur localisateur dans ce cas est CSS. Vous pouvez donc choisir AssertElementPresent.
ou
vous pouvez utiliser deux commandes sur Selenium IDE
selectWindow | null
verifyElementPresent | css=div.content
Hope this helps!