赛普拉斯 - 如何验证文件是不是已下载?

Posted

技术标签:

【中文标题】赛普拉斯 - 如何验证文件是不是已下载?【英文标题】:Cypress - How to verify if a file is downloaded?赛普拉斯 - 如何验证文件是否已下载? 【发布时间】:2021-03-04 15:23:54 【问题描述】:

我想检查一个文件是否在我的测试中被下载。我只需要在单击按钮后确认文件已下载。我不需要阅读文件及其内容。我下载的所有文件都是 zip 文件,不知道这是否会使它们更难阅读?

it('Initiate download', () => 
  cy.get('[id="download-button"]')
    .should('be.visible')
    .click()
 );

 it('Verify the downloaded file', () => 
   cy.readFile('/Downloads/fileName.zip')
     .should('exist')
 );

【问题讨论】:

***.com/questions/47930881/… 【参考方案1】:

你可以试试这个

const path = require("path");

it('Verify the downloaded file', () => 
   const downloadsFolder = Cypress.config("downloadsFolder");
   cy.readFile(path.join(downloadsFolder, "fileName.zip")).should("exist");
);

【讨论】:

为什么这个答案还不被接受,@Finney14? 请注意this issue... 其他一些方法,如this 和this 使用cy.task(...),因为它们使用像fs.existsSync(...) 这样的节点模块。这个答案很优雅,因为它使用了cy.readFile(...);它不需要cy.task(...),所以它很简短。但是,对我来说,下载的文件是一个大的 PDF,所以readFile(或将文件内容记录到 cy log 作为断言的一部分)减慢了我的测试速度,也许我应该使用@ 987654330@。或使用“存在”方法而不是“读取”

以上是关于赛普拉斯 - 如何验证文件是不是已下载?的主要内容,如果未能解决你的问题,请参考以下文章

赛普拉斯可以运行在赛普拉斯文件夹之外导入的测试文件吗?

赛普拉斯:如何验证字体颜色与预期不符

赛普拉斯:检查元素是不是存在无异常

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

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

如何期望日期包含赛普拉斯中的另一个日期?