Cypress测试中Firefox下载文件未进入指定配置文件夹问题
Cypress Firefox下载路径配置方案
要解决Firefox下载文件未进入Cypress指定路径的问题,无需额外安装插件,只需在Cypress配置中针对Firefox设置下载偏好,具体操作如下:
修改Cypress配置文件
在cypress.config.js(或cypress.config.ts)中,通过before:browser:launch钩子配置Firefox的下载相关偏好:const { defineConfig } = require('cypress') module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { on('before:browser:launch', (browser = {}, launchOptions) => { if (browser.family === 'firefox') { // 指向Cypress默认的downloads文件夹 const downloadsFolder = config.downloadsFolder // 设置自定义下载路径 launchOptions.preferences['browser.download.dir'] = downloadsFolder // 启用自定义路径模式(2表示使用指定路径,0表示桌面,1表示默认下载文件夹) launchOptions.preferences['browser.download.folderList'] = 2 // 指定自动下载的MIME类型,避免弹出确认框 launchOptions.preferences['browser.helperApps.neverAsk.saveToDisk'] = 'image/png' return launchOptions } }) }, }, })关键配置说明
browser.download.dir:指定下载文件的目标路径,直接复用Cypress内置的config.downloadsFolder即可指向默认的cypress/downloads目录。browser.download.folderList:设为2表示强制使用自定义路径,而非Firefox默认的下载位置。browser.helperApps.neverAsk.saveToDisk:添加对应文件的MIME类型,让Firefox自动下载该类型文件,无需用户确认。如果测试的是其他类型文件,需替换为对应的MIME值(比如application/pdf对应PDF文件)。
验证配置
保存配置后重新运行测试,Firefox即可将文件下载到cypress/downloads目录下。
内容的提问来源于stack exchange,提问作者user19780775
相关产品推荐
相关产品推荐

