Cypress系列(99)- cypress-downloadfile 插件, downloadFile() 命令详解

简介: Cypress系列(99)- cypress-downloadfile 插件, downloadFile() 命令详解

如果想从头学起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

 

官方地址


https://github.com/Xvier/cypress-downloadfile

 

安装方式


npm

npm install cypress-downloadfile

 

项目导入插件


cypress/support/commands.js 文件下添加下面语句

require('cypress-downloadfile/lib/downloadFileCommand')

 

cypress/plugins/index.js 文件下写下面语句即可

const {downloadFile} = require('cypress-downloadfile/lib/addPlugin')
module.exports = (on, config) => {
  on('task', {downloadFile})
}


注意事项


如果测试文件中自动补全代码功能无法立即使用,可以在文件上方添加下面语句

/// <reference types="cypress-downloadfile"/>

 

命令源码


  Cypress.Commands.add('downloadFile', (url, dir, fileName, userAgent) => {
    return cy.getCookies().then(cookies => {
        return cy.task('downloadFile', {
            url: url,
            directory: dir,
            cookies: cookies,
            fileName: fileName,
            userAgent: userAgent,
        })
    })
})


  • 通过 cy.task 完成下载文件的操作
  • 暂时没搞懂这个 Cookie 有啥用

 

实际栗子


测试代码

image.png

image.png

如果文件夹不存在,则在 cypress 安装目录(和 cypress.json 同级目录)下生成一个文件夹

相关文章
|
Java Maven 开发工具
【开发工具】解决idea maven报错: 无效的目标发行版:19
【开发工具】解决idea maven报错: 无效的目标发行版:19
1798 0
|
9月前
|
数据采集 安全 Go
Conc,一个神奇的Go语言并发利器!
`sourcegraph/conc` 是 Go 语言的结构化并发工具包,提供 `conc.WaitGroup`、goroutine 池和上下文管理等功能,帮助开发者安全高效地处理并发任务,避免 goroutine 泄漏、简化错误处理,提升代码可读性与程序健壮性。
442 0
Conc,一个神奇的Go语言并发利器!
|
SQL 存储 关系型数据库
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
14273 0
|
3月前
|
人工智能 弹性计算 安全
给小白看的Openclaw(Clawdbot) 7×24 AI助理扫盲指南,附OpenClaw最新几种搭建方案
你有没有幻想过,拥有一个不止会聊天,还能实实在在帮你处理工作生活琐事的AI助手?清理杂乱的邮箱、规划每日日程、编写代码片段、甚至自主安装扩展功能,这些需求OpenClaw都能轻松实现。这款开源工具凭借强大的功能,在短短两个月内斩获近10万GitHub星标,一跃成为史上增长最快的开源项目之一,掀起了个人AI助手的全新浪潮。
1918 3
|
Linux Docker 容器
CentOS7使用阿里源安装最新版Docker
CentOS7使用阿里源安装最新版Docker
11152 0
|
4月前
|
机器学习/深度学习 数据安全/隐私保护 iOS开发
Mac安装Miniconda完整指南(从零开始配置Python环境)
本教程详细介绍如何在Mac上从零安装Miniconda,配置Python环境。涵盖下载、安装、验证及常用Conda命令,帮助用户轻松搭建数据科学开发环境,适合新手快速上手。
|
JSON 人工智能 前端开发
前端开发中使用whistle代理工具
Whistle是一款强大的代理工具,相比Charles、Fiddler更轻量且功能丰富。它适用于前端开发中的多种场景,如接口数据Mock、接口代理、静态资源代理等。通过简单的规则配置,可将接口指向本地JSON文件,解决跨域问题,或代理静态资源以满足特定域名访问需求。此外,Whistle还支持本地端口间转发与移动端请求抓包,搭配SwitchyOmega插件使用效果更佳。需注意,使用前请确保已安装Node环境并参考官方文档完成基础配置。
|
JSON Java API
Integrating the 1688 Product Details API Interface for Taobao
The 1688 platform, a subsidiary of Alibaba Group, is a leading wholesale marketplace in China. It provides a vast selection of products from various suppliers, enabling businesses to source goods efficiently. One of the key features that enhance the user experience on 1688 is the ability to access d
|
Dart 搜索推荐 API
Flutter & 鸿蒙next版本:自定义对话框与表单验证的动态反馈与错误处理
在现代移动应用开发中,用户体验至关重要。本文探讨了如何在 Flutter 与鸿蒙操作系统(HarmonyOS)中创建自定义对话框,并结合表单验证实现动态反馈与错误处理,提升用户体验。通过自定义对话框和表单验证,开发者可以提供更加丰富和友好的交互体验,同时利用鸿蒙next版本拓展应用的受众范围。
364 1
|
机器学习/深度学习 人工智能 自然语言处理
深度强化学习发展概要
强化学习(Reinforcement Learning)是智能体与环境之间进行交互,并将状态映射到动作以获得奖励,实现最优策略的学习机制。与监督学习相比,强化学习不需要样本集,也不需要进行人工标注,而是通过不断尝试来发现不同动作产生的正向或负向的反馈,来指导策略的学习。与无监督式学习相比,强化学习不只是探索事物的特征进行模式识别,而且通过与环境交互建立输入与输出之间的映射关系,目标是得到最优策略。
1266 1
深度强化学习发展概要

热门文章

最新文章