[JAVA] Automatisieren Sie das Herunterladen von IE11 / Edge-Dateien mit Selenium WebDriver

Problem (Taste zum Drücken)

Wenn Sie eine Datei mit IE11 / Edge herunterladen, wird unten ein Antwortdialog (Benachrichtigungsleiste) angezeigt, und Sie müssen auf "Speichern" klicken.

Dieser Dialog. image.png image.png

Dieses Mal habe ich untersucht, wie dies mit Selenium WebDriver getestet werden kann. Die Implementierungssprache ist Java.

Code zum Drücken der Taste

Es scheint, dass der Dialog in den Browsereinstellungen nicht ausgeblendet werden kann, daher habe ich untersucht, wie man auf "Speichern" drückt.

Weitere Informationen finden Sie im Code unter Testen des Herunterladens von Dateien in IE9 über Selen. Ich habe es in erstellt, musste es aber ein wenig ändern, da die IE-Version anders war.

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;

//・ ・ ・

//Element, das die Download-Verarbeitung durchführt(Knopf etc.)suchen nach
WebElement downloadElement = driver.findElement(By.id("download"));

try {
    Robot robot = new Robot();

    //Bewegen Sie den Fokus auf das Zielelement
    downloadElement.sendKeys("""");

    //Drücken Sie die Eingabetaste
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

    //Benachrichtigungsleiste herunterladen(Download-Manager)Warten auf
    Thread.sleep(2000);

    // Alt+Drücken Sie N, um die Benachrichtigungsleiste herunterzuladen(Download-Manager)Bewegen Sie den Fokus auf
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_ALT);

    //Drücken Sie die Eingabetaste, um den Download zu starten
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);

    //Warten Sie, bis der Download abgeschlossen ist
    Thread.sleep(2000);

    // Alt+Drücken Sie N, um die Benachrichtigungsleiste herunterzuladen(Download-Manager)Bewegen Sie den Fokus auf
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_N);
    robot.keyRelease(KeyEvent.VK_N);        
    robot.keyRelease(KeyEvent.VK_ALT);

    //Drücken Sie dreimal die Tabulatortaste in der Benachrichtigungsleiste"X"Übergang zu einer Schaltfläche
    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);

    //Drücken Sie die Eingabetaste und die Benachrichtigungsleiste(Download-Manager)Schließen
    robot.keyPress(KeyEvent.VK_ENTER);
    robot.keyRelease(KeyEvent.VK_ENTER);
} catch (AWTException e) {
    e.printStackTrace();
}

Erklärungen und Hinweise

Wie ich in den Kommentaren geschrieben habe, verwendet dieser Code Robot, um die für den Download erforderlichen Tastenanschläge auszuführen. Speziell

--Drücken Sie Alt + N (Fokus auf Download-Dialog) → Drücken Sie die Eingabetaste (drücken Sie die Speichern-Taste) → Drücken Sie erneut Alt + N (Fokus auf Bestätigungsdialog nach dem Download) → Gehen Sie zu X (Schließen) auf der Registerkarte → Drücken Sie die Eingabetaste (schließt den Dialog)

Ich mache die Operation.

Wenn Sie also das aktive Fenster während der Testausführung von ändern, wird der Schlüssel in diesem Fenster bedient und der Test schlägt fehl </ font> (z. B. kann er normal ausgeführt werden). Wenn Sie den Download-Ordner öffnen, um zu überprüfen, ob dies der Fall ist, wird der Schlüssel dort bedient. Achten Sie darauf, das aktive Fenster nicht zu wechseln, während Sie den Code hier testen.

Wenn sich die Spezifikationen des Browsers in Zukunft ändern und sich die Tastenbedienung ändert, muss dies ebenfalls korrigiert werden. Zum Schluss werde ich die diesmal bestätigte Browserversion auflisten.

Informationen zur IE11-Version: image.png

Edge-Version: image.png

Recommended Posts

Automatisieren Sie das Herunterladen von IE11 / Edge-Dateien mit Selenium WebDriver
Zusammenfassung der Probleme und Gegenmaßnahmen beim Betrieb des IE mit WebDriver of Selenium2
Lesen Sie die xlsx-Datei in Java mit Selenium
Führen Sie Edge (Chromium-Version) auf einem Mac mit Selen aus