2013-03-21 4 views
6

Ich verwende Capybara mit Chrom und Selen. Wenn ich versuche, auf einen Link zu klicken, der einen automatischen Download verursacht, wird die Datei korrekt heruntergeladen. Wenn ich dies erneut versuche, wird in Chrome die Meldung angezeigt: "Diese Website versucht, mehrere Dateien herunterzuladen. Möchten Sie dies zulassen?"Wie kann man mehrere Dateien auf Chrome mit Capybara/Selen herunterladen?

enter image description here

Ich war auf der Suche nach einem flag, die verwendet werden könnten, diese Nachricht zu deaktivieren, aber nichts gefunden. Gibt es eine Möglichkeit, diese Nachricht zu umgehen und den Mehrfachdownload zu ermöglichen, ohne auf eine Seitenaktualisierung zurückgreifen zu müssen? (Z. B. Gibt es eine Möglichkeit, die Schaltfläche Erlauben programmgesteuert zu klicken?)

+0

Hier ist mein Beitrag, wie die richtige Flagge für Ihre Einrichtung zu finden: http://stackoverflow.com/a/36821119/4854090 –

Antwort

-2

Wenn es keine bessere Lösung gibt, können Sie das Element abrufen und darauf klicken.

driver.findElement(By.xpath("xpath")).click(); 
+0

Er klickt darauf. Das ist das Problem. Der Browser verwendet einen groben Versuch einer Sicherheitsmaßnahme, um mehrere Downloads zu blockieren, und es scheint nicht einfach zu sein. Ich habe gesehen, wie Leute in den Einstellungen über die Option "Frag mich, wo ich heruntergeladene Inhalte speichern soll" hin- und herwechseln, aber das hat bei mir nicht funktioniert. –

0

Verwenden Chrome-Optionen

WebDriver driver = null; 
ChromeOptions options = new ChromeOptions(); 
     Map<String, Object> prefs = new HashMap<String, Object>(); 
     prefs.put("profile.default_content_settings.popups", 0); 
     prefs.put("profile.content_settings.pattern_pairs.*.multiple-automatic-downloads", 1); 
     //Turns off download prompt 
     prefs.put("download.prompt_for_download", false); 
     options.setExperimentalOption("prefs", prefs); 

    driver = new ChromeDriver(options); 
Verwandte Themen