Prasad_Joshi
Prasad_Joshi

Reputation: 662

How to auto-download through Firefox browser using FirefoxProfile?

I'm working with selenium java where I need to download pdf files, I referred this, this and also this answers here, but seems like nothing is working in my situation. Is it due to setting a new firefox driver instance i.e.System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe"); ? I'm stuck here.However when I manually click on save file on the MIME dialog it saves correctly to my custom location, also my download link code resides in another java class and below code in another class , but I use the same driver as declared in this class, below is my code,

FirefoxProfile profile = new FirefoxProfile();
//Set Location to store files after downloading.
profile.setPreference("browser.download.folderList", 2);
profile.setPreference( "browser.download.manager.showWhenStarting", false );
profile.setPreference("browser.download.dir", "D:\\WebDriverDownloads");
profile.setPreference("pdfjs.disabled", true);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf"); 
System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe");
driver = new FirefoxDriver(profile);

Upvotes: 3

Views: 4948

Answers (1)

undetected Selenium
undetected Selenium

Reputation: 193108

The following code block configures a Firefox Profile to Download and Save PDF files using Selenium through Java bindings:

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", "C:\\Utility\\Downloads");
profile.setPreference("browser.download.folderList",2);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.helperApps.neverAsk.openFile","text/plain,application/octet-stream,application/pdf,application/x-pdf,application/vnd.pdf");
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.download.manager.useWindow", false);
profile.setPreference("browser.download.manager.focusWhenStarting", false);
profile.setPreference("browser.helperApps.neverAsk.openFile", "");
profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.closeWhenDone", true);
profile.setPreference("pdfjs.disabled", true);
System.setProperty("webdriver.firefox.bin", "D:\\FFF\\firefox.exe");
WebDriver driver = new FirefoxDriver(profile);

Upvotes: 3

Related Questions