如何解决从赛普拉斯下载问题处理文件
当我在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');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。