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

使用undetected_chromedriver.v2设置下载路径时出现不识别prefs选项报错如何解决

报错原因

undetected_chromedriver.v2 为了绕过Chrome的反爬指纹检测,对Chrome启动配置做了定制化处理,它的uc.ChromeOptions不支持原生Selenium的add_experimental_option('prefs', xxx)写法,直接传入prefs配置会被识别为非法参数,触发上述报错。

解决方案

你可以直接删除原来把prefs添加到options的代码,在初始化uc.Chrome时通过官方预留的prefs参数传入下载配置即可,修改后的参考代码如下:

import undetected_chromedriver.v2 as uc
chrome_options = uc.ChromeOptions()
chrome_options.add_argument("--window-size=800,800")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--start-maximized")
# 注意原变量名phone number含空格,实际使用请修正为合法变量名,比如phone_number
chrome_options.user_data_dir = project_settings.LOCAL_PROFILES_STORAGE_PATH + "\\" + phone_number
download_path = "D://driver"
preferences = {"download.default_directory": download_path}
# 移除原有的 chrome_options.add_experimental_option('prefs', preferences) 行
chrome_options.to_capabilities()
chrome_options.add_argument('--no-first-run --no-service-autorun --password-store=basic')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--profile-directory=Default')
# 初始化uc.Chrome时直接传入prefs参数
return uc.Chrome(options=chrome_options, prefs=preferences)
注意事项
  • 请提前手动创建你设置的下载路径D://driver,如果路径不存在Chrome会自动使用默认下载路径,不会自动创建目标文件夹
  • 如果使用自定义的user_data_dir用户配置目录,原有目录里的Chrome下载配置优先级会高于本次传入的prefs,若配置不生效可以先清空原有用户配置目录再测试
  • Windows系统下路径写法尽量使用正斜杠/或者双反斜杠\\,避免单斜杠触发转义导致路径识别错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 20:30:02