Cypress-如何验证下载的文件是否包含动态名称? [英] Cypress - How can I verify if the downloaded file contains name that is dynamic?

查看:38
本文介绍了Cypress-如何验证下载的文件是否包含动态名称?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Cypress中,我下载的xlsx文件总是以";abc";开头,然后是一些动态ID。如何验证文件是否下载成功并且是否也包含该动态名称? 其次,如果下载的文件类似于";69d644353f126777.xlsx";,那么当名称中的所有内容都是动态的时,我如何验证该文件是否已下载。

提前感谢。

推荐答案

建议的一种方式是使用任务查询Downloads文件夹

/cypress/plugins/index.js

const fs = require('fs');

on('task', {
  downloads:  (downloadspath) => {
    return fs.readdirSync(downloadspath)
  }
})

测试

cy.task('downloads', 'my/downloads/folder').then(before => {

  // do the download

  cy.task('downloads', 'my/downloads/folder').then(after => {
    expect(after.length).to.be.eq(before.length +1)  
  })
})

如果您无法将下载定向到项目本地的文件夹,请提供完整路径。Node.js(即Cypress任务)对文件系统具有完全访问权限。


若要获取新文件的名称,请使用过滤并获取结果中的第一项(也是唯一项)。

const newFile = after.filter(file => !before.includes(file))[0]

 

这篇关于Cypress-如何验证下载的文件是否包含动态名称?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆