Wenn Sie eine Datei mit IE11 / Edge herunterladen, wird unten ein Antwortdialog (Benachrichtigungsleiste) angezeigt, und Sie müssen auf "Speichern" klicken.
Dieser Dialog.
Dieses Mal habe ich untersucht, wie dies mit Selenium WebDriver getestet werden kann. Die Implementierungssprache ist Java.
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();
}
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:
Edge-Version:
Recommended Posts