Search code examples
pythonselenium-webdriverdirectorydownloadgeckodriver

Download file with python selenium, correct download directory with firefox driver


i have the following code and its all working correctly except for 1 issue the file that is downloaded does not go into the specified directory what is the issue ?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
import re
import pandas as pd
import os
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time



url = "THE URL"
username = 'USERNAME'
password = 'PASSWORD'
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", 'C://Users/USER/OneDrive/Documents/dest_folder')
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")

while True:

    driver = webdriver.Firefox(executable_path=r'C:/Users/USER/OneDrive/Documents/pycharm/geckodriver.exe',firefox_profile=profile)
    driver.implicitly_wait(100)
    driver.get(url)

    user_field = driver.find_element_by_id("ap_email")
    pass_field = driver.find_element_by_id("ap_password")
    sign_in = driver.find_element_by_id("signInSubmit")
    user_field.send_keys(username)
    pass_field.send_keys(password)
    sign_in.click()
    driver.get(url)
    driver.implicitly_wait(100)
    time.sleep(5)
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.yms-button-primary-alt.ng-isolate-scope[csv-header='getCsvHeader'][ng-csv^='fetchData']"))).click()
    time.sleep(5)
    driver.close()

Solution

  • try changing your directory to this

    r'C:\Users\USER\OneDrive\Documents\dest_folder'