Ich versuche, den Dateidownload mit Selenium zu automatisieren.JAVA Selenium Webdriver Fragen Sie, wo Sie jede Datei vor dem Download speichern können
Immer wenn eine Datei zum Herunterladen empfangen wird, möchte ich diese bestimmte Datei an einem benutzerdefinierten Speicherort speichern und mit einem benutzerdefinierten Namen speichern.
Ich möchte, dass der Browser bittet, jede Datei zu speichern, damit ich den Pfad und den Dateinamen dynamisch angeben kann.
Ich kann die Datei in benutzerdefinierten Verzeichnis speichern, aber ich konnte nicht die Kontrolle über den Dateinamen. Ich möchte java.awt.Robot
, java.awt.datatransfer.StringSelection
und java.awt.Toolkit
für die Verwendung eines benutzerdefinierten Dateinamens verwenden.
Mein Code
ChromeOptions chromeOptions = new ChromeOptions();
HashMap<String, Object> chromePreferences = new HashMap<String, Object>();
chromePreferences.put("profile.default_content_settings.popups", 0);
chromePreferences.put("download.default_directory", browserDownloadDirectoryPath);
chromePreferences.put("safebrowsing.enabled", "true");
chromeOptions.setExperimentalOption("prefs", chromePreferences);
chromeOptions.addArguments("--test-type");
chromeDesiredCapabilities = DesiredCapabilities.chrome();
chromeDesiredCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
Diese Datei, um benutzerdefinierte Ordner zu speichern.
Wenn der Browser nach der Dateispeicherung fragt, möchte ich die Robot-Klasse verwenden, um den Pfad zu senden.
StringSelection stringSelection = new StringSelection(
"<file path>" + "<file name>");
Toolkit.getDefaultToolkit().getSystemClipboard()
.setContents(stringSelection, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_TAB);
robot.keyRelease(KeyEvent.VK_TAB);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Bitte stellen Sie eine Lösung zur Verfügung, um den Browser zu zwingen, die Datei zu speichern.
Für Firefox haben wir about:config
, um alle Einstellungen für den Browser zu sehen. Haben wir so etwas auch für andere Browser?
können Sie überprüfen, dies heraus und sehen, ob es ein ähnliches Java-Gegenstück gibt. http://stackoverflow.com/questions/18954686/how-to-download-file-using-selenium – mootmoot