Selenium Python修改默认下载目录并规避Windows弹窗问题
Selenium 修改默认下载目录并规避文件选择弹窗方案
要实现修改Selenium默认下载目录且不触发Windows文件选择弹窗,核心是通过浏览器的配置参数预先指定下载路径并禁用下载弹窗提示,不同浏览器的配置方式如下:
Chrome/Edge(Chromium内核)
通过ChromeOptions(Edge用EdgeOptions)设置下载相关偏好,直接指定目录并关闭弹窗提示:
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 配置Chrome选项 chrome_options = Options() # 指定下载目录(Windows路径用原始字符串或双反斜杠) download_dir = r"C:\Your\Custom\Download\Path" chrome_options.add_experimental_option("prefs", { "download.default_directory": download_dir, "download.prompt_for_download": False, # 禁用下载弹窗 "download.directory_upgrade": True, "plugins.always_open_pdf_externally": True # 下载PDF时直接保存,不在浏览器打开 }) # 初始化浏览器 driver = webdriver.Chrome(options=chrome_options) # 后续执行下载操作即可自动保存到指定目录
Firefox
通过Firefox Profile配置下载参数,指定目录并设置不询问保存路径:
from selenium import webdriver from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.firefox_profile import FirefoxProfile # 创建Firefox配置文件 firefox_profile = FirefoxProfile() download_dir = r"C:\Your\Custom\Download\Path" # 设置下载目录 firefox_profile.set_preference("browser.download.dir", download_dir) firefox_profile.set_preference("browser.download.folderList", 2) # 2表示使用自定义目录 firefox_profile.set_preference("browser.download.manager.showWhenStarting", False) # 指定无需询问保存的文件MIME类型(可根据需求添加更多类型) firefox_profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf,application/vnd.ms-excel,application/zip") # 初始化浏览器 options = Options() options.profile = firefox_profile driver = webdriver.Firefox(options=options)
关键注意事项
- 确保指定的
download_dir是绝对路径,Windows系统下推荐使用原始字符串(r"路径")避免转义问题 - 提前手动创建好目标下载目录,否则浏览器可能无法自动创建并触发异常
- 针对不同类型的下载文件,需正确配置对应的MIME类型(可通过浏览器开发者工具查看文件的Content-Type),否则仍可能触发保存弹窗
- Edge浏览器配置逻辑与Chrome完全一致,只需将
ChromeOptions替换为EdgeOptions,webdriver.Chrome替换为webdriver.Edge即可
内容的提问来源于stack exchange,提问作者Jordan.M
相关产品推荐
相关产品推荐

