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

Mac系统下Selenium操作Firefox下载.3ds文件弹窗无法自动处理问题求解

Selenium 自动下载.3ds格式文件解决方案

核心问题原因

你现有配置未添加.3ds格式对应的MIME类型,且缺少高版本火狐针对未知后缀下载的特殊校验配置,导致下载弹窗始终触发。

火狐浏览器修复方案

  1. 先确认站点返回的.3ds文件正确MIME类型:按F12打开浏览器开发者工具的「网络」面板,手动点击下载链接,查看该下载请求响应头的Content-Type字段值,将其补充到配置中。常见3ds文件MIME类型为application/x-3ds、model/3ds,部分站点会返回通用二进制类型application/octet-stream。
  2. 修改你的代码配置,补充缺失项:
profile = webdriver.FirefoxProfile()
# 基础下载配置
profile.set_preference("browser.download.panel.shown", False)
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.useDownloadDir", True)
profile.set_preference("browser.download.dir","/Users/myusername/Downloads")
# 自动保存配置,补充3ds对应的MIME类型
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream, application/x-3ds, model/3ds")
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.forbid_open_with", True)
# 关闭下载管理器相关弹窗
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
profile.set_preference("browser.download.manager.focusWhenStarting", False)
profile.set_preference("browser.download.manager.closeWhenDone", True)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False)
# 高版本火狐新增配置:允许不安全/未知后缀下载
profile.set_preference("browser.download.allowInsecureDownloads", True)
profile.set_preference("browser.safebrowsing.downloads.enabled", False)

# Selenium 3.x写法
browser = webdriver.Firefox(firefox_profile=profile,executable_path=GeckoDriverManager().install())
# 如果你用Selenium 4.x请替换为以下写法:
# from selenium.webdriver.firefox.options import Options
# options = Options()
# options.profile = profile
# browser = webdriver.Firefox(options=options, executable_path=GeckoDriverManager().install())
browser.maximize_window()

Chrome浏览器备选方案

如果火狐适配仍有问题,可更换为Chrome浏览器,配置逻辑更简单:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = Options()
prefs = {
    "download.default_directory": "/Users/myusername/Downloads",
    "download.prompt_for_download": False,
    "download.directory_upgrade": True,
    "safebrowsing.enabled": True,
    "download.extensions_to_open": "",
    "profile.default_content_settings.popups": 0
}
chrome_options.add_experimental_option("prefs", prefs)
# 允许自动下载.3ds后缀文件
chrome_options.add_argument("--safebrowsing-disable-download-protection")

browser = webdriver.Chrome(executable_path=ChromeDriverManager().install(), options=chrome_options)
browser.maximize_window()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:15:04