Quel serait un walkaround pour des alertes JavaScript qui sont générés dans le onload d'une page () à l'aide Sélénium?
-
25-09-2019 - |
Question
Je suis une page AUTOMATISATION DE formulaire en utilisant Selenium RC (C #). Après avoir cliqué sur « Envoyer » bouton, je reçois une alerte « Records Edited Successfully!
». Le titre de cette zone d'alerte est « The page at http://www.******.com says:
».
Mais Sélénium ne voit pas cette alerte. Et je ne peux pas travailler autour d'elle.
Voici ce que j'ai essayé:
selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.WaitForPageToLoad("30000");
Résultat: je reçois l'erreur suivante: "Selenium.SeleniumException : Timed out after 30000ms
"
Alors j'ai essayé:
selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.OpenWindow("", "The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");
Résultat: Trois fenêtres sont ouvertes (site, alerte et fenêtre supplémentaire). Rien ne se referme. Je reçois l'erreur suivante: "Selenium.SeleniumException : Timed out after 30000ms
"
Alors j'ai essayé:
selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.SelectWindow("The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");
Résultat: je reçois l'erreur suivante: "Could not find window with title 'The page at http://www.******.com says:'
"
Toutes les suggestions? S'il vous plaît aider à surmonter cet obstacle.
La solution 2
Enfin, j'ai trouvé une solution de contournement:
selenium.Click("ctl00_Content_ctl00_btnSubmit");
Thread.Sleep(5000);
selenium.KeyDownNative("32");
selenium.KeyUpNative("32");
Je vous souhaite bonne chance, tout le monde!
Autres conseils
Il semble que la meilleure façon de le faire est d'utiliser des scripts pour redéfinir la fonction d'alerte () à quelque chose qui ne popup de pas de dialogue.
((JavascriptExecutor) fDriver).executeScript(
"window.alert = function(msg) { return true; }"
);
Ce message semble suggérer une solution:
En outre, vérifiez ce message: