You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium使用指定Chrome配置文件时prefs下载目录配置被忽略问题

问题根本原因

Selenium启动Chrome时指定加载本地已存在的用户配置文件的场景下,Chrome会优先读取配置文件中已经固化的偏好设置,你通过add_experimental_option传入的prefs参数优先级低于配置文件内的已有配置,因此自定义下载目录的设置会被原有配置覆盖。

可行解决方案

推荐使用Chrome DevTools Protocol(CDP)动态修改下载路径,该方法优先级高于配置文件的固化设置,无需修改原有Chrome配置即可生效。

修正后的代码示例

from selenium import webdriver

downloadFolderPath = 'P:\\reports\\attachments'

options = webdriver.ChromeOptions()
options.add_argument(r'--user-data-dir=C:\\Users\\my.name\\AppData\\Local\\Google\\Chrome\\User Data')
options.add_argument(r'--profile-directory=Profile 5')
options.headless = False  

browser = webdriver.Chrome(executable_path='chromedriver.exe', options=options)

# 新增CDP命令修改下载路径,优先级高于配置文件原有设置
browser.execute_cdp_cmd('Page.setDownloadBehavior', {
    'behavior': 'allow',
    'downloadPath': downloadFolderPath
})

# 后续执行浏览页面、点击下载等操作

如果你不想用CDP的方式,也可以手动修改目标配置的默认下载路径:

  1. 手动打开Chrome,切换到你要加载的Profile 5配置文件
  2. 进入Chrome设置 -> 高级 -> 下载内容,将默认下载位置修改为P:\reports\attachments
  3. 保存设置后关闭所有Chrome进程,再运行Selenium代码即可生效,无需额外传prefs参数。
注意事项
  • 确保你指定的自定义下载目录真实存在,且当前Windows用户对该目录有读写权限,否则下载路径会自动回退到配置默认的目录
  • 启动Selenium前请关闭所有正在运行的Chrome进程,避免同一用户配置被多个Chrome实例占用,导致配置加载失败、参数不生效
  • 你使用的Chrome和ChromeDriver版本匹配,没有版本兼容性问题,无需更换驱动。

内容的提问来源于stack exchange,提问作者matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:06:07