如何在赛普拉斯中测试视频文件上传?

好奇的灵魂230

自从我刚接触自动化和赛普拉斯以来,这个论坛就非常有用。尝试将文件上传到应用程序时,我也遇到问题。

我在command.js中使用了以下代码:

Cypress.Commands.add('uploadFile', { prevSubject: true }, (subject, fileName, fileType = '') => {
    cy.fixture(fileName,'binary').then(content => {
      return Cypress.Blob.binaryStringToBlob(content, fileType).then(blob => {
        const el = subject[0];
        const testFile = new File([blob], fileName, {type: fileType});
        const dataTransfer = new DataTransfer();

        dataTransfer.items.add(testFile);
        el.files = dataTransfer.files;
        cy.wrap(subject).trigger('change', { force: true });
      });
    });
  });

然后在测试下面的代码:

const fileName = 'comp-test-malte.mp4';
const fileType = 'video/mp4';
cy.get('input[type=file]').uploadFile(fileName, fileType);

这对我来说是成功的一半,因为它显示了上载0%,但是从数据库中得到以下错误,并且文件未上载:

“ Firebase存储:索引0处放置了无效参数:预期的Blob或文件。”

请帮助!

Manuel Abascal

根据以下消息来源目前Cypress.io似乎不支持此功能

来源1

来源2

来源3

您可以使用cypress-file-upload npm软件包作为解决方法!

在此线程注释中,您可能会找到合适的解决方法,如下所示:

// sample code found in the thread
.fixture('bear.mp4', 'binary')
  .then(Cypress.Blob.binaryStringToBlob)
  .then(fileContent => {
    cy.get('#upload-video').upload({
      fileContent,
      fileName: 'bear.mp4',
      mimeType: 'video/mp4',
      encoding: 'utf8'
    })
})

有关更多详细信息,请检查此存储库

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用赛普拉斯测试文件输入?

赛普拉斯-如何按顺序运行测试文件

如何在赛普拉斯中动态生成测试用例?

如何在赛普拉斯测试中公开/访问Redux之类的数据存储?

如何在赛普拉斯中返回文档尺寸以供以后测试

如何在赛普拉斯中测试以某种形状的对象作为参数的存根函数?

如何在Azure Devops中安排赛普拉斯测试?

如何在赛普拉斯中添加测试用例分组

如何从赛普拉斯的 .sql 文件中读取数据?

如何在赛普拉斯中存根节点模块?

如何在赛普拉斯中声明localStorage

如何在赛普拉斯中访问baseURL的值

如何在赛普拉斯中单击x次

如何在赛普拉斯中创建命令

如何在赛普拉斯配置文件中引用环境变量?

赛普拉斯-如何在赛普拉斯中进行轮询?

如何在数组中传递文件名,然后迭代赛普拉斯中的文件上载功能

如何让赛普拉斯使用位于默认集成文件夹之外的测试文件?

赛普拉斯-如何最好地测试多步流程

如何让Teamcity显示赛普拉斯失败的测试列表

在赛普拉斯中运行测试的所有断言

赛普拉斯-在iframe中运行测试

上传图像[赛普拉斯]

如何从赛普拉斯的测试文件中提取通用功能

如何在赛普拉斯中发送带有测试报告的电子邮件

如何在赛普拉斯测试中切换 Angular 选项卡

如何在赛普拉斯所有测试套件之前执行代码

如何在赛普拉斯中使用不同的夹具运行相同的测试?

如何在Windows上记录我的赛普拉斯测试?