2013-03-21 21 views
6

Chrome ve Selenium ile Capybara kullanıyorum. Otomatik indirmeye neden olan bir bağlantıya tıklamaya çalıştığımda, dosya doğru şekilde indirilir. Bunu tekrar yapmaya çalışırsam Chrome şu mesajı gösterir: "Bu site birden fazla dosya indirmeyi deniyor. Buna izin vermek istiyor musunuz?"Chrome'da Capybara/Selenium ile birden fazla dosya nasıl indirilir?

enter image description here

bu mesajı devre dışı bırakmak için kullanılabilecek bir flag arıyordu ama bir şey bulamadık. Bu mesaja ulaşabileceğim ve sayfanın yenilenmesine başvurmadan birden fazla yüklemeye izin vermenin bir yolu var mı? (Örn. İzin Ver butonunu programlı olarak tıklatabileceğim bir yol var mı?)

+0

İşte kurulum için doğru bayrağını bulmak için nasıl benim sonrası var: http://stackoverflow.com/a/36821119/4854090 –

cevap

-2

Daha iyi bir çözüm yoksa, öğeyi alabilir ve üzerine tıklayabilirsiniz.

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

O, üzerine tıklıyor. İşte sorun bu. Tarayıcı, birden fazla indirmeyi engellemek için bir güvenlik önlemi olarak ham bir girişim kullanıyor ve bunun için kolay bir yol yok gibi görünüyor. Kullanıcıların 'indirilen içerikten nereye kaydedileceğini sor' ayarlarında değişiklik yaptıklarını gördüm, ancak bu benim için işe yaramadı. –

0

Chrome kullanın Seçenekler

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);