1

I am using selenium and python v3.6 to automate firefox to download file into a customized folder. The location of the folder is C:/Users/username/Dropbox/Inv/.

Below is my firefox profile.

profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', 'C:/Users/username/Dropbox/Inv/')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/plain')
profile.set_preference('browser.helperApps.neverAsk.openFile', 'text/plain')

Currently, the file is always downloaded in the default folder C:\Users\username\Downloads. How do I get the downloaded folder location to be C:/Users/username/Dropbox/Inv/?

user1315789
  • 3,069
  • 6
  • 18
  • 41
  • Possible duplicate of [download and save multiple csv files using selenium and python from popup](https://stackoverflow.com/questions/45097302/download-and-save-multiple-csv-files-using-selenium-and-python-from-popup) – undetected Selenium Oct 18 '17 at 06:42

2 Answers2

2

You need to use profile while launching Firefox:

driver = webdriver.Firefox(firefox_profile = profile)

Check 8.4. How to auto save files using custom Firefox profile ? in Selenium Docs FAQ.

This is the example in the link:

import os

from selenium import webdriver

fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()
Alperen
  • 3,772
  • 3
  • 27
  • 49
2

I will answer my own question. The problem lies with the string specifying the download directory. I should use \\ and not /.

profile.set_preference('browser.download.dir', 'C:\\Users\\username\\Dropbox\\Inv')

The code has been verified to be working now.

user1315789
  • 3,069
  • 6
  • 18
  • 41