pythonselenium-webdriverfirefoxselenium-firefoxdriver

selenium firefox custom download location seems to be ignored


I have tried everything suggested in SO threads for this so I must be doing something else wrong. So I apologize if this seems like another repeat of many similar threads.

I'm trying to set a custom download location for firefox in my python selenium project with:

options.set_preference("browser.download.dir", 'C:\\temp')

However the setting seems to be ignored, with downloads only going to the default windows download folder.

options = webdriver.FirefoxOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("-safe-mode")
options.set_preference("extensions.enabledScopes", 0)
print("todo: troubleshoot why custom download dir isnt being utilized")
options.set_preference("browser.download.dir", 'C:\\temp')

I'm using:

selenium version: 4.10.0
Firefox version: 114.0.1
FirefoxDriver version: 0.33.0

I've tried all combinations of the folder value I can think of, with single and double , and double or single quotes, and an r at the front. I've also tried when the other option arguments were disabled. None of my attempts have worked.


Solution

  • Here is a working setup for Firefox with custom download folder (accounting for situations where you are trying to download .PDF files):

    firefox_options = Firefox_Options()
    firefox_options.set_preference("browser.download.folderList", 2)
    firefox_options.set_preference("browser.download.dir", "C:\\temp")
    firefox_options.set_preference("browser.download.useDownloadDir", True)
    firefox_options.set_preference("pdfjs.disabled", True)
    
    firefox_options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
    

    Selenium documentation can be found here.