如何通过Selenium WebDriver修改Firefox的PDF下载默认设置
解决Firefox Selenium中PDF自动保存的问题
要实现PDF文件直接保存而非在Firefox中打开,仅设置application/pdf是不够的,需要配置一组完整的浏览器偏好:
- 禁用Firefox内置的PDF阅读器,强制文件下载
- 指定自动保存的MIME类型(包含PDF)
- 配置下载目录(可选,若需指定路径)
- 关闭下载弹窗提示
完整配置代码(基于FirefoxProfile)
from selenium import webdriver # 初始化FirefoxProfile fp = webdriver.FirefoxProfile() # 禁用内置PDF阅读器 fp.set_preference("pdfjs.disabled", True) # 禁用PDF插件的全屏预览 fp.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf") # 指定自动保存的MIME类型,包含PDF fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf,application/x-pdf") # 设置下载目录(0=桌面,1=默认下载目录,2=自定义路径) fp.set_preference("browser.download.folderList", 2) # 自定义下载路径(替换为你的目标路径) fp.set_preference("browser.download.dir", "/path/to/your/download/folder") # 关闭下载管理器弹窗 fp.set_preference("browser.download.manager.showWhenStarting", False) # 启动浏览器 driver = webdriver.Firefox(firefox_profile=fp)
新版本Selenium推荐方案(使用FirefoxOptions)
如果你的Selenium版本较新(v4+),FirefoxProfile已被标记为过时,推荐使用FirefoxOptions:
from selenium import webdriver from selenium.webdriver.firefox.options import Options options = Options() # 禁用内置PDF阅读器 options.set_preference("pdfjs.disabled", True) options.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf") options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf,application/x-pdf") options.set_preference("browser.download.folderList", 2) options.set_preference("browser.download.dir", "/path/to/your/download/folder") options.set_preference("browser.download.manager.showWhenStarting", False) driver = webdriver.Firefox(options=options)
关键参数说明
pdfjs.disabled: 关闭Firefox自带的PDF.js阅读器,避免在浏览器内打开PDFbrowser.helperApps.neverAsk.saveToDisk: 列出需要自动保存的文件MIME类型,确保包含application/pdf和application/x-pdf覆盖常见PDF类型browser.download.folderList: 控制下载目录位置,设为2时需配合browser.download.dir指定自定义路径
内容的提问来源于stack exchange,提问作者John Code
相关产品推荐
相关产品推荐

