2013-03-21 10 views
6

मैं क्रोम और सेलेनियम के साथ Capybara का उपयोग कर रहा हूं। जब मैं एक लिंक पर क्लिक करने का प्रयास करता हूं जो स्वचालित डाउनलोड का कारण बनता है, तो फ़ाइल सही ढंग से डाउनलोड की जाती है। अगर मैं इसे फिर से करने का प्रयास करता हूं, तो क्रोम संदेश दिखाता है: "यह साइट एकाधिक फाइलें डाउनलोड करने का प्रयास कर रही है। क्या आप इसे अनुमति देना चाहते हैं?"कैपिबारा/सेलेनियम के साथ क्रोम पर एकाधिक फाइलें कैसे डाउनलोड करें?

enter image description here

मैं एक flag कि इस संदेश को निष्क्रिय करने के लिए इस्तेमाल किया जा सकता के लिए देख रहा था, लेकिन कुछ भी नहीं मिला। क्या इस संदेश के आसपास मैं कोई रास्ता प्राप्त कर सकता हूं और पेज रीफ्रेश करने के बिना एकाधिक डाउनलोड की अनुमति देता हूं? (उदा। क्या कोई तरीका है कि मैं प्रोग्राम्सैटिक रूप से अनुमति दें बटन पर क्लिक कर सकता हूं?)

+0

यहाँ कैसे अपने स्थापना के लिए सही झंडा लगाने के लिए पर मेरी पोस्ट है: http://stackoverflow.com/a/36821119/4854090 –

उत्तर

-2

यदि कोई बेहतर समाधान नहीं है, तो आप तत्व प्राप्त कर सकते हैं और उस पर क्लिक कर सकते हैं।

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

वह उस पर क्लिक कर रहा है। यही समस्या है। ब्राउज़र एकाधिक डाउनलोड को अवरुद्ध करने के लिए एक सुरक्षा उपाय पर एक कच्चे प्रयास का उपयोग कर रहा है और इसके आसपास कोई आसान तरीका नहीं लगता है। मैंने लोगों को सेटिंग्स में डाउनलोड की गई सामग्री को सहेजने के लिए कहें 'पूछने के बारे में बात की है, लेकिन यह मेरे लिए काम नहीं करता है। –

0

उपयोग 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); 
संबंधित मुद्दे