Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set default download directory in selenium Chrome Capabilities?

Please find the below code with the chrome capabilities. In fact the browser is not downloading the file to the specified path.

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; } 
like image 548
vini007 Avatar asked Dec 29 '15 16:12

vini007


2 Answers

For Chromedriver try out with:

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

Note:- In windows you need to use \\ for path while if you are using linux or mac then use //

Hope this helps. :)

like image 94
Shubham Jain Avatar answered Sep 21 '22 10:09

Shubham Jain


For Python users who see this page -- here's how I set the download directory in Python Selenium (this is just the Python version of Shubham's accepted answer):

def newChromeBrowser(headless=True, downloadPath=None):     """ Helper function that creates a new Selenium browser """     options = webdriver.ChromeOptions()     if headless:         options.add_argument('headless')     if downloadPath is not None:         prefs = {}         os.makedirs(downloadPath)         prefs["profile.default_content_settings.popups"]=0         prefs["download.default_directory"]=downloadPath         options.add_experimental_option("prefs", prefs)     browser = webdriver.Chrome(options=options, executable_path=CHROMEDRIVER_PATH)     return browser 
like image 40
Luke Avatar answered Sep 22 '22 10:09

Luke