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

如何在Selenium中仅允许部分文件下载?

解决Selenium Firefox仅下载指定视频文件的方案

针对你的需求,分两种场景给出解决方案:

场景1:点击按钮后浏览器自动触发全部4个文件下载

这种情况需要通过配置Firefox的下载偏好,限制仅自动下载指定MIME类型的视频文件,拒绝文本文件的自动下载。

步骤:

  1. 确定你需要下载的视频文件对应的MIME类型,常见视频类型的MIME值参考:
    • MP4:video/mp4
    • MKV:video/x-matroska
    • AVI:video/x-msvideo
    • MOV:video/quicktime
  2. 在你的Selenium配置中添加以下偏好设置,替换成你实际的视频MIME类型:
options = Options()
options.headless = False
options.profile = r"C:\Users\Profiles\osdf86s"
download_dir = r'C:\Users\Downloads'

# 核心下载偏好配置
options.set_preference("browser.download.dir", download_dir)
options.set_preference("browser.download.folderList", 2)
# 指定自动保存的视频MIME类型(多个用逗号分隔)
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "video/mp4,video/x-matroska")
# 禁止对指定类型弹出下载询问
options.set_preference("browser.helperApps.alwaysAsk.force", False)
# 隐藏下载管理器弹窗(可选)
options.set_preference("browser.download.manager.showWhenStarting", False)
# 阻止非指定类型的自动下载(可选,若浏览器仍下载文本文件可添加)
options.set_preference("browser.download.manager.alertOnEXEOpen", False)
options.set_preference("browser.download.manager.focusWhenStarting", False)
options.set_preference("browser.download.manager.useWindow", False)
options.set_preference("browser.download.manager.showAlertOnComplete", False)
options.set_preference("browser.download.manager.closeWhenDone", False)

s = Service(GeckoDriverManager().install())
driver = webdriver.Firefox(service=s, options=options)

说明:

  • 把browser.helperApps.neverAsk.saveToDisk的值替换为你需要的视频MIME类型,多个类型用英文逗号分隔。
  • 若文本文件仍被自动下载,可检查文本文件的MIME类型(比如TXT是text/plain),确保未加入到自动保存列表中。

场景2:点击按钮后页面显示4个下载选项(如4个下载按钮/链接)

这种情况无需修改下载偏好,直接定位到对应的两个视频下载按钮并点击即可,忽略文本文件的下载选项。

示例代码(假设视频下载按钮文本为"下载视频1"、"下载视频2"):

# 点击触发下载选项的按钮
driver.find_element(By.CSS_SELECTOR, "触发按钮的选择器").click()

# 定位并点击第一个视频下载按钮
driver.find_element(By.XPATH, "//button[text()='下载视频1']").click()
# 定位并点击第二个视频下载按钮
driver.find_element(By.XPATH, "//button[text()='下载视频2']").click()

说明:

  • 需根据实际页面的HTML结构,替换按钮的定位方式(如CSS选择器、XPath、ID等)。
  • 若下载需要等待,可添加WebDriverWait等待元素加载完成后再点击。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:08:11