Skip to main content

How to Download File using WebDriver

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

Popular posts from this blog

Testing Types

         Installation testing Main article: Installation testing An installation test assures that the system is installed correctly and working at actual customer's hardware. Compatibility testing Main article: Compatibility testing A common cause of software failure (real or perceived) is a lack of its compatibility with other application software, operating systems (or operating system versions, old or new), or target environments that differ greatly from the original (such as a terminal or GUI application intended to be run on the desktop now being required to become a web application, which must render in a web browser). For example, in the case of a lack of backward compatibility, this can occur because the programmers develop and test software only on the latest version of the target environment, which not all users may be running. This results in the unintended cons...

What really happens when you navigate to a URL

As a software developer, you certainly have a high-level picture of how web apps work and what kinds of technologies are involved: the browser, HTTP, HTML, web server, request handlers, and so on. In this article, we will take a deeper look at the sequence of events that take place when you visit a URL. 1. You enter a URL into the browser It all starts here: 2. The browser looks up the IP address for the domain name   The first step in the navigation is to figure out the IP address for the visited domain. The DNS lookup proceeds as follows: Browser cache –  The browser caches DNS records for some time. Interestingly, the OS does not tell the browser the time-to-live for each DNS record, and so the browser caches them for a fixed duration (varies between browsers, 2 – 30 minutes). OS cache  – If the browser cache does not contain the desired record, the browser makes a system call (gethostbyname in Windows). The OS has its own cache....

Software Testing Basics - Software Testing Interview Questions and Answers

1. Can you explain the PDCA cycle and where testing fits in? Software testing is an important part of the software development process. In normal software development there are four important steps, also referred to, in short, as the PDCA (Plan, Do, Check, Act) cycle. Let's review the four steps in detail. Plan:  Define the goal and the plan for achieving that goal. Do/Execute:  Depending on the plan strategy decided during the plan stage we do execution accordingly in this phase. Check:  Check/Test to ensure that we are moving according to plan and are getting the desired results. Act:  During the check cycle, if any issues are there, then we take appropriate action accordingly and revise our plan again. So developers and other stakeholders of the project do the "planning and building," while testers do the check part of the cycle. Therefore, software testing is done in check part of the PDCA cyle. 2. What is the difference between white box,...