Comment gérer les fenêtres de téléchargement de fichier de la fenêtre lors de l'utilisation de sélénium

Je suis en train d'écrire le sélénium tests pour un site web à l'aide de java. Cependant, j'ai rencontré un problème lors du test du téléchargement du fichier..

Quand je clique sur le bouton de téléchargement de fichiers, il s'ouvre automatiquement les fenêtres de téléchargement de fichiers. J'ai le code de travail pour mettre le texte dans la boîte de téléchargement avec succès, c'est juste il n'y a rien que je peux faire pour arrêter la boîte de windows de venir automatiquement, et d'avoir le site internet n'est pas automatiquement ouvrir la fenêtre de téléchargement de fichier n'est pas vraiment une option. De la recherche sur ce sujet, j'ai compris, il n'y aucun moyen pour selenium webdriver pour gérer cela. Donc ma question est: qu'est-ce que je peut simplement fermer la fenêtre de téléchargement, de manière automatisée?

J'ai essayé la java robot de classe et il ne fonctionne pas. Il a attendu jusqu'à ce que la fenêtre de téléchargement a été fermé avant de faire les commandes, je lui ai donné (ALT-F4, en cliquant sur x et y la position, etc)

Merci d'avance

EDIT:

wait.until(ExpectedConditions.elementToBeClickable(By.id(("addResourcesButton"))));
driver.findElement(By.id("addResourcesButton")).click();

//popup window comes up automatically at this point


try {
    Robot robot = new Robot();
    robot.mouseMove(875, 625);
    robot.mousePress(InputEvent.BUTTON1_MASK);
    robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (AWTException e) {
    e.printStackTrace();
}

//my attempt to move the mouse and click, doesn't move or click until after I close the windows upload box

String fileToUpload = "C:\\file.png";


WebElement uploadElement = driver.findElement(By.id("fileInput"));
uploadElement.sendKeys(fileToUpload);

//Takes the code and successfully submits it to the text area, where I can now upload it
Parlez-vous de Selenium RC, ou WebDriver? L'ancien a la attachFile() de la méthode, cette dernière utilise sendKeys() (le lien a aussi quelques conseils au sujet de l' Robot classe d'utilisation qui, si utilisé correctement, aussi fonctionne toujours).
Mes excuses, je parle de WebDriver en particulier ici. Le problème avec le robot de classe est-il juste attend jusqu'à ce que la fenêtre de dialogue se ferme avant qu'il s'exécute tout ce que je dis. J'ai eu un problème similaire pour un OS boîte d'alerte et j'ai été en mesure d'obtenir le robot pour y travailler, il semble juste être la fenêtre de téléchargement, qu'il ne fonctionnera pas jusqu'à ce que après le chargement de la fenêtre est fermée.
Absolument pas. Pourrais-tu nous montrer ton code? Je peux utiliser fiable de la Robot classe pour télécharger un fichier. De toute façon, le mieux est d'utiliser le sendKeys() méthode sur la <input type='file'> élément. Avez-vous essayé?
Voir mon edit. 🙂
Ohhh, à droite. WebDriver n'a pas de retour de la click() méthode jusqu'à ce que vous avez fermé la fenêtre, cela signifie que vous devez cliquer dessus avec quelque chose afin d'utiliser le Robot. Intéressant. De toute façon, suis-je le lire tout de qui le sendKeys() œuvres? Je suis confus quant à l'endroit où le problème apparaît et ce qui se passe vraiment =/.

OriginalL'auteur Zoltorn | 2013-05-16