【问题标题】:Selenium Chromedriver not downloading to specified directorySelenium Chromedriver 未下载到指定目录
【发布时间】:2026-01-14 19:00:02
【问题描述】:

我正在尝试使用seleniumFanGraphs Leaderboards 下载一些数据。我正在使用 Firefox 这样做,但 Chrome 有点快,所以我试图切换到它。使用 Firefox,可以找到下载文件,但我在切换到 Chrome 时遇到了问题。

设置 Chrome

chrome_options = webdriver.ChromeOptions()
chrome_options.headless = False
os.makedirs("dist", exist_ok=True)
preferences = {
    "profile.default_content_settings.popups": 0,
    "download.default_directory": "dist/",
    "directory_upgrade": True
}
chrome_options.add_experimental_option(
    "prefs", preferences
)
self.browser = webdriver.Chrome(
    chrome_options=chrome_options
)

导出数据

while True:
    try:
        WebDriverWait(self.browser, 20).until(
            expected_conditions.element_to_be_clickable(
                (By.ID, "LeaderBoard1_cmdCSV")
            )
        ).click()
        break
    except exceptions.ElementClickInterceptedException:
        self.__close_ad()

当我为我的模块运行测试时,CSV 文件最终位于 C:/Users/UserDir/Downloads 中,而不是我的 dist/ 文件夹中当前工作目录。我仔细检查了 dist/ 文件夹是否存在,确实存在。

规格

  • Python v3.9
  • seleniumv3.141.0
  • Chromedriver v89.0.4389.23
  • 谷歌浏览器 v88.0.4324.190

【问题讨论】:

    标签: python python-3.x selenium selenium-chromedriver


    【解决方案1】:

    我遇到了同样的问题,我解决了

    option.add_experimental_option("prefs", {'download.default_directory': f"{download_path}",
                                                 'download.prompt_for_download': False,
                                                 'download.directory_upgrade': True})
    

    directory_upgrade 之前可能会错过下载。

    复制粘贴这个

    preferences = {
        "profile.default_content_settings.popups": 0,
        "download.default_directory": "dist/",
        "download.directory_upgrade": True
    }
    

    【讨论】: