[JAVA] Automatisez les téléchargements de fichiers IE11 / Edge avec Selenium WebDriver

Problème (bouton à appuyer)

Lors du téléchargement d'un fichier avec IE11 / Edge, une boîte de dialogue de réponse (barre de notification) apparaîtra en bas et vous devez appuyer sur "Enregistrer".

Ce dialogue. image.png image.png

Cette fois, j'ai étudié comment tester cela avec Selenium WebDriver. Le langage d'implémentation sera Java.

Code pour appuyer sur le bouton

Il semble que la boîte de dialogue ne puisse pas être cachée dans les paramètres du navigateur, j'ai donc cherché comment appuyer sur "Enregistrer".

Reportez-vous au code dans Test du téléchargement de fichiers dans IE9 via Selenium Je l'ai créé dans, mais j'ai dû le modifier un peu car la version d'IE était différente.

sample.java


import java.awt.AWTException;
import java.awt.Robot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

//・ ・ ・

//Élément qui effectue le traitement du téléchargement(Bouton etc.)rechercher
WebElement downloadElement = driver.findElement(By.id("download"));

try {
    Robot robot = new Robot();

    //Déplacer le focus sur l'élément cible
    downloadElement.sendKeys("""");

    //Appuyez sur la touche Entrée
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

    //Télécharger la barre de notification(Gestionnaire de téléchargement)Attendre
    Thread.sleep(2000);

    // Alt+Appuyez sur N pour télécharger la barre de notification(Gestionnaire de téléchargement)Déplacer le focus sur
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_ALT);

    //Appuyez sur la touche Entrée pour démarrer le téléchargement
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

    //Attendez la fin du téléchargement
    Thread.sleep(2000);

    // Alt+Appuyez sur N pour télécharger la barre de notification(Gestionnaire de téléchargement)Déplacer le focus sur
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_N);        
    robot.keyRelease(KeyEvent.VK_ALT);

    //Appuyez trois fois sur la touche de tabulation dans la barre de notification"X"Transition vers un bouton
    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);

    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);

    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);

    //Appuyez sur la touche Entrée et sur la barre de notification(Gestionnaire de téléchargement)proche
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException e) {
    e.printStackTrace();
}

Description et remarques

Comme je l'ai écrit dans les commentaires, ce code utilise Robot pour effectuer les frappes nécessaires pour le téléchargement. En particulier

--Appuyez sur Alt + N (focus sur la boîte de dialogue de téléchargement) → appuyez sur Entrée (appuyez sur le bouton Enregistrer) → appuyez à nouveau sur Alt + N (focus sur la boîte de dialogue de confirmation après le téléchargement) → passez au bouton X (fermer) sur l'onglet → Appuyez sur Entrée (ferme la boîte de dialogue)

Je fais l'opération.

Par conséquent, si vous changez la fenêtre active pendant l'exécution du test , la clé sera actionnée dans cette fenêtre et le test échouera </ font> (par exemple, il peut être exécuté normalement). Si vous ouvrez le dossier de téléchargement pour vérifier si c'est le cas, la clé y sera utilisée). Faites attention de ne pas changer la fenêtre active lors du test du code ici.

De plus, si les spécifications du navigateur changent à l'avenir et que l'opération clé change, cela doit être corrigé. Enfin, je listerai la version du navigateur confirmée cette fois.

Informations sur la version d'IE11: image.png

Version Edge: image.png

Recommended Posts

Automatisez les téléchargements de fichiers IE11 / Edge avec Selenium WebDriver
Résumé des problèmes et des contre-mesures lors de l'utilisation d'IE avec WebDriver de Selenium2
Lire le fichier xlsx en Java avec Selenium
Run Edge (version Chromium) sur Mac avec Selenium