【问题标题】: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')
});
【问题讨论】:
标签:
download
cypress
zipfile
【解决方案1】:
你可以试试这个
const path = require("path");
it('Verify the downloaded file', () => {
const downloadsFolder = Cypress.config("downloadsFolder");
cy.readFile(path.join(downloadsFolder, "fileName.zip")).should("exist");
});
【讨论】:
-
-
-
其他一些方法,如this 和this 使用cy.task(...),因为它们使用像fs.existsSync(...) 这样的节点模块。这个答案很优雅,因为它使用了cy.readFile(...);它不需要cy.task(...),所以它很简短。但是,对我来说,下载的文件是一个大的 PDF,所以readFile(或将文件内容记录到 cy log 作为断言的一部分)减慢了我的测试速度,也许我应该使用@ 987654330@。或使用“存在”方法而不是“读取”