When we download file from a web page, it asks for confirmation to download along with the download location. For automating this download file process, we have to set some preferences based on the browser used.
In this article, we will see file download for Firefox and Chrome separately.
Download File using FirefoxDriver
For firefox, we have to set the below firefox profile preferences.
- browser.download.dir – The download directory
- browser.download.folderList – It has to be set to 2 to make firefox use custom download directory (the above given download directory). If value is 0, it downloads the file to user’s desktop and if its 1, it uses the default Downloads folder.
- browser.download.manager.showWhenStarting – Whether to show the download manager when starting download
- browser.helperApps.neverAsk.saveToDisk – Never ask for saving to disk for the given file types.
Using the above preferences, we can create the profile and initialize the FirefoxDriver.
1
2
3
4
5
6
7
8
9
| FirefoxProfile profile = new FirefoxProfile(); profile.setPreference( "browser.download.dir" , "D:\\Custom\\Download\\Directory" ); profile.setPreference( "browser.download.folderList" , 2 ); // File type of the downloaded file profile.setPreference( "browser.helperApps.neverAsk.saveToDisk" , "text/csv" ); profile.setPreference( "browser.download.manager.showWhenStarting" , false ); profile.setPreference( "pdfjs.disabled" , true ); // Initialize webdriver using the profile WebDriver driver = new FirefoxDriver(profile); |
Download File using Chrome
The method is similar for chromedriver in which we set the ExperimentalOptions preferences in ChromeOptions as shown below.
Preferences Set
- download.default_directory – The download directory
- profile.default_content_settings.popups – To disallow popups
1
2
3
4
5
6
| ChromeOptions options = new ChromeOptions(); Map<String, Object> prefs = new HashMap<String, Object>(); prefs.put( "profile.default_content_settings.popups" , 0 ); prefs.put( "download.default_directory" , "D:\\Downloads\\Directory" ); options.setExperimentalOption( "prefs" , prefs); WebDriver driver = new ChromeDriver(options); |
We will be covering How to Import Files using WebDriver in a future post.
Comments
Post a Comment