如何通过Python3+Selenium ChromeDriver指定位置下载文件?代码失效求助
解决ChromeDriver指定下载路径不生效的问题
我来帮你搞定这个下载路径的问题!你的代码里有几个容易踩的小坑,我给你一步步修正:
问题分析
- 下载路径的设置方式错了:你用
add_argument来设置download.default_directory,但这个参数属于Chrome的偏好设置(prefs),得用add_experimental_option来添加,而不是启动参数。 - 弃用的参数:
chrome_options在新版Selenium中已经被弃用,现在要改用options参数传递配置。 - 路径转义问题:虽然你用了双反斜杠,但用正斜杠
/会更省心,避免转义出错。
修正后的完整代码
from selenium import webdriver # 初始化Chrome选项 options = webdriver.ChromeOptions() # 配置下载偏好:替换成你想要的目标路径 download_prefs = { "download.default_directory": "C:/Users/ASUS/Your_Target_Folder", # 这里改成你的指定路径 "download.prompt_for_download": False, # 关闭下载确认弹窗 "profile.default_content_settings.popups": 0 # 禁用弹出窗口,防止干扰下载 } # 将偏好设置添加到Chrome选项中 options.add_experimental_option("prefs", download_prefs) # 初始化驱动:注意用options参数,不是chrome_options driver = webdriver.Chrome(executable_path=r"C:\Users\ASUS\Downloads\chromedriver.exe", options=options) driver.implicitly_wait(30)
额外注意事项
- 版本匹配:确保你的ChromeDriver版本和本地Chrome浏览器版本完全对应,版本不兼容会导致各种奇怪问题(比如配置不生效)。
- 特殊文件处理:如果是下载PDF这类Chrome默认会直接打开的文件,需要再加一行配置:
"plugins.always_open_pdf_externally": True,强制Chrome下载而不是打开。 - 路径有效性:指定的目标路径必须是已经存在的文件夹,否则Chrome会自动回退到默认的Downloads目录。
内容的提问来源于stack exchange,提问作者Ishita Agrawal
相关产品推荐
相关产品推荐

