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?

StackOverflow https://stackoverflow.com/questions/4210658

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.

Était-ce utile?

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; }"
); 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top