如何使用 cypress 删除下载的文件

Shi*_* BM 8 cypress

我试图在下次文本执行之前删除下载的文件,但无法找到如何删除下载的文件的方法

小智 21

配置选项"trashAssetsBeforeRuns": true默认为 true,因此除非您已经更改了它,否则这不是您正在寻找的答案。

请注意,它仅适用于cypress run(无头)模式,参考cypress.d.ts(通过简单测试确认)。

还要注意downloadsFolder默认为 的配置选项/cypress/downloads。在项目之外,使用完整路径。


local-download-spec.js给了你一个cypress open例子。

测试

import { deleteDownloadsFolder } from './utils'
...
beforeEach(deleteDownloadsFolder)
...
Run Code Online (Sandbox Code Playgroud)

实用程序

export const deleteDownloadsFolder = () => {
  const downloadsFolder = Cypress.config('downloadsFolder')
  cy.task('deleteFolder', downloadsFolder)
}
Run Code Online (Sandbox Code Playgroud)

/cypress/plugins/index.js 中的任务

const { rmdir } = require('fs')

module.exports = (on, config) => {
  on('task', {
    deleteFolder(folderName) {
      console.log('deleting folder %s', folderName)

      return new Promise((resolve, reject) => {
        rmdir(folderName, { maxRetries: 10, recursive: true }, (err) => {
          if (err) {
            console.error(err)
            return reject(err)
          }
          resolve(null)
        })
      })
    },
  })
}
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以将此配置添加到 cypress.json:"trashAssetsBeforeRuns": true