2013-03-21 9 views
6

Używam Capybara z Chrome i Selenium. Kiedy próbuję kliknąć łącze, które powoduje automatyczne pobieranie, plik jest pobierany poprawnie. Jeśli spróbuję to zrobić ponownie, Chrome wyświetli komunikat: "Ta witryna próbuje pobrać wiele plików. Chcesz zezwolić na to?"Jak pobierać wiele plików w Chrome za pomocą Capybara/Selenium?

enter image description here

ja szukałem flag, które można wykorzystać, aby wyłączyć ten komunikat, ale nie mogłem znaleźć nic. Czy jest jakiś sposób obejść ten komunikat i pozwolić na wielokrotne pobieranie bez konieczności uciekania się do odświeżania strony? (Np. Czy jest jakiś sposób programistycznego kliknięcia przycisku Zezwalaj?)

+0

Oto mój post o tym, jak znaleźć odpowiednią flagę konfiguracji: http://stackoverflow.com/a/36821119/4854090 –

Odpowiedz

-2

Jeśli nie ma lepszego rozwiązania, można pobrać element i kliknąć go.

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

On to klika. To jest problem. Przeglądarka używa surowej próby zabezpieczenia w celu zablokowania wielu pobrań i wydaje się, że nie ma łatwego sposobu obejścia tego problemu. Widziałem, jak ludzie mówią o przełączaniu się w ustawieniach "pytaj mnie, gdzie zapisać pobraną zawartość", ale to nie zadziałało. –

0

korzystać z Chrome

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); 
Powiązane problemy