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

使用Selenium与Firefox下载PDF时,如何避免文件自动在浏览器打开?

解决Selenium+Firefox下载PDF后自动打开的问题

你的现有代码已经配置了基础的下载路径和PDF自动保存设置,但缺少几项关键的Firefox偏好配置,导致PDF下载后仍会自动打开。需要补充以下设置:

  • 设置browser.helperApps.neverAsk.openFile为application/pdf,告诉浏览器不要自动打开PDF类型文件
  • 设置browser.download.viewableInternally.enabledTypes为空字符串,移除PDF的内部查看权限
  • 设置plugin.disable_full_page_plugin_for_types为application/pdf,禁用PDF全屏查看插件

修正后的完整代码:

def __init__(self):
    self.options = webdriver.FirefoxOptions()
    # 指定下载路径为自定义目录(2代表自定义)
    self.options.set_preference("browser.download.folderList", 2)
    self.options.set_preference("browser.download.useDownloadDir", True)
    # 指定自动保存的文件类型为PDF
    self.options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
    # 禁用PDF.js内置查看器
    self.options.set_preference("pdfjs.disabled", True)
    # 禁止自动打开PDF文件
    self.options.set_preference("browser.helperApps.neverAsk.openFile", "application/pdf")
    # 移除PDF的内部查看权限
    self.options.set_preference("browser.download.viewableInternally.enabledTypes", "")
    # 禁用PDF全屏插件
    self.options.set_preference("plugin.disable_full_page_plugin_for_types", "application/pdf")
    self.firefox = webdriver.Firefox(service=Service(GeckoDriverManager().install()), options=self.options)
    self.firefox.maximize_window()

注意:确保Firefox浏览器版本和GeckoDriver版本兼容,避免因版本不匹配导致设置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:30:55