2015-12-29 8 views
9

कृपया क्रोम क्षमताओं के साथ नीचे कोड खोजें। वास्तव में ब्राउज़र निर्दिष्ट पथ पर फ़ाइल डाउनलोड नहीं कर रहा है।सेलेनियम क्रोम क्षमताओं में डिफ़ॉल्ट डाउनलोड निर्देशिका कैसे सेट करें?

String downloadFilepath = "/path/to/download"; 
HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
chromePrefs.put("profile.default_content_settings.popups", 0); 
chromePrefs.put("download.default_directory", downloadFilepath); 
ChromeOptions options = new ChromeOptions(); 
options.setExperimentalOption("prefs", chromePrefs); 
DesiredCapabilities cap = DesiredCapabilities.chrome(); 
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
cap.setCapability(ChromeOptions.CAPABILITY, options); 
WebDriver driver = new ChromeDriver(cap); 

नोट::

private static DesiredCapabilities getChromeCapabilities() throws Exception { 

    String chromePath = BrowserUtil.class.getResource("/Browserdrivers/chromedriver.exe").getPath(); 
    System.setProperty("webdriver.chrome.driver", chromePath); 
    String downloadFilepath = "C:\\TestDownloads"; 
    ChromeOptions options = new ChromeOptions(); 
    HashMap<String, Object> chromePrefs = new HashMap<String, Object>(); 
    chromePrefs.put("profile.default_content_settings.popups", 0); 
    chromePrefs.put("download.default_directory", downloadFilepath); 
    options.setExperimentalOption("prefs", chromePrefs); 
    options.addArguments("--test-type"); 
    options.addArguments("start-maximized", "disable-popup-blocking"); 

    DesiredCapabilities chromeCapabilities = DesiredCapabilities.chrome(); 
    setProxy(chromeCapabilities); 
    chromeCapabilities.setPlatform(Platform.WINDOWS); 
    chromeCapabilities.setCapability("name", MDC.get("testname")); 
    chromeCapabilities.setCapability(ChromeOptions.CAPABILITY, options); 
    return chromeCapabilities; 
} 

उत्तर

17

Chromedriver के लिए के साथ बाहर की कोशिश - खिड़कियों में, जबकि यदि आप लिनक्स का उपयोग कर रहे या मैक तो का उपयोग //

आशा आप पथ के लिए उपयोग करने के लिए \\ की जरूरत है इससे मदद मिलती है। :)

+2

या फिर आप –

+0

बिल्कुल सही .. धन्यवाद क्या होगा यदि मैं रनटाइम के दौरान डाउनलोड पथ को बदलने की जरूरत? मेरा मतलब है प्रत्येक परीक्षण के लिए अपना रास्ता निर्धारित करें। –

+0

साझा करने के लिए File.separator इस्तेमाल करेंगे स्लैश के बजाय – Orest

2

उत्तर जो मुझे विंडोज़ (https://bugs.chromium.org/p/chromedriver/issues/detail?id=783) पर इस समस्या को हल करने में मदद करता है।

Map<String, Object> prefs = new HashMap<String, Object>(); 
prefs.put("download.default_directory", System.getProperty("user.dir")+ File.separator + "externalFiles" + File.separator + "downloadFiles"); 
ChromeOptions options = new ChromeOptions(); 
options.setExperimentalOption("prefs", prefs); 
ChromeDriver driver = new ChromeDriver(options); 
संबंधित मुद्दे