2015-12-29 24 views
9

Si prega di trovare il codice sottostante con le funzionalità di cromo. In realtà il browser non sta scaricando il file nel percorso specificato.Come impostare la directory di download predefinita in Titenum Chrome Funzionalità?

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

risposta

17

Per Chromedriver provare con:

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

Nota: - In Windows è necessario utilizzare \\ per il percorso, mentre se si utilizza Linux o Mac quindi utilizzare //

Speranza questo aiuta. :)

+2

o ti basta usare File.separator al posto delle barre –

+0

assolutamente ragione .. grazie per la condivisione di –

+0

Cosa succede se ho bisogno di cambiare percorso di download durante l'esecuzione? Intendo impostare il proprio percorso per ogni test. – Orest

2

Gli an che mi aiutano a risolvere questo problema su Windows (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);