从赛普拉斯下载问题处理文件

问题描述

当我在Cypress上尝试下载.xlsx报告并进一步处理其中的数据以进行进一步验证时,我遇到的问题是Cypress在电子浏览器上运行测试时,它会提示一个基于窗口的弹出窗口。 而且,当我选择chrome浏览器运行测试时,无法修改下载目录的默认目录。因此,如果项目目录中不存在数据,则无法进行数据处理,因为这会导致CI执行失败。 任何解决方法,将不胜感激。

解决方法

我通过执行以下操作使用 plugins 文件夹中的 index.js 文件解决了这个问题:

const cypressTypeScriptPreprocessor = require('./cy-ts-preprocessor');
const path = require('path');
const fs = require('fs');

const RESULT_FOLDER = 'results';
const downloadDirectory = path.join(__dirname,'..',RESULT_FOLDER);

module.exports = on => {
    on('file:preprocessor',cypressTypeScriptPreprocessor);
    on('before:browser:launch',(browser = {},options) => {
        if (fs.existsSync(downloadDirectory)) {
            fs.rmdirSync(downloadDirectory,{ recursive: true });
        }

        if (browser.family === 'chromium' && browser.name !== 'electron') {
            options.preferences.default['download'] = { default_directory: downloadDirectory };

            return options;
        }

        if (browser.family === 'firefox') {
            options.preferences['browser.download.dir'] = downloadDirectory;
            options.preferences['browser.download.folderList'] = 2;

            return options;
        }
    });
};

您可以在此处找到相关文档:https://docs.cypress.io/api/plugins/browser-launch-api.html#Change-download-directory

请注意,这适用于 Chromium 浏览器,但目前不适用于 CI 模式下的 Electron 浏览器。赛普拉斯知道这个问题,目前正在为此实施解决方案:https://github.com/cypress-io/cypress/issues/949#issuecomment-755975882

,

您可以按如下所示在测试中更改下载路径。

const downloadFolder = path.resolve(__dirname,'../users/user/source/repos/containingRoot/cypress/downloads');

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...