npx 是 npm 自带的命令行工具:

在项目根目录下,使用命令行 npx cypress open 启动:

也可以利用 yarn 启动:yarn run cypress open

或者是直接执行 node_modules bin 文件夹下的二进制命令。

这样就可以成功启动 Cypress Launchpad:

package.json 添加如下的 script:

"scripts": {"cypress:open": "cypress open"}

然后可以用如下的命令启动:

npm run cypress:open

npm install 安装完毕后,工程目录下有个 cypress\integration 文件夹,里面有很多 sample 文件。

每个 test 一开始都是一个 blank state,因此需要在 beforeEach 函数调用里进行初始化。

在这个 spec 执行的时候,cy 为什么就可用了?

单步调试 todo.spec.js,在 webpack:// 文件夹下:

具体的实现位置?

为什么会在这个 url 下面?https://example.cypress.io/__cypress/runner/cypress_runner.js

https://example.cypress.io/todo

这是一个开发好的 web 应用:

cy 的方法都是 generic 注入进去的:

记住这个文件名:cypress_runner.js

运行队列:

队列是一个 object:

Promise 似乎不是原生的 Promise:

如何才能看到 cy.visit 访问网站的准确动作?

cy.visit 会立即返回,而不会同步的去访问网站:

it('let me debug like a fiend', () => {cy.visit('/my/page/path')cy.get('[data-testid="selector-in-question"]')debugger // Doesn't work
})

这里是 Cypress 统一处理 action 的地方:

action(eventName, ...args) {// normalizes all the various ways// other objects communicate intent// and 'action' to Cypressdebug(eventName);switch (eventName) {case 'recorder:frame':return this.emit('recorder:frame', args[0]);case 'cypress:stop':return this.emit('stop');

使用 onBeforeLoad 钩子,我们可以在 Web 应用的主页,加载之前,注入一些数据给它:

it('can modify window._bootstrappedData', function () {// in this solution we use cy.visit({onBeforeLoad: ...})// to modify the window._bootstrappedData global so that// it's passed into our App.start() methodconst data = {env: 'test',api: 'https://test-api.company.com',}cy.visit('/bootstrap.html', {onBeforeLoad: (win) => {win._bootstrappedData = data},})cy.get('pre').invoke('text').should('eq', JSON.stringify(data))})})

关于 Cypress 的启动和 cy.visit 的调试相关推荐

  1. Cypress系列(43)- visit() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 访问远程 URL 语法格式 cy. ...

  2. Cypress 本身启动过程的调试

    这个文件:node_modules\cypress\bin\cypress 里面的内容: #!/usr/bin/env noderequire('../lib/cli').init() 很多 requ ...

  3. android 启动 uboot 参数,Android210 uboot 调试

    目录 1.编译配置 2.u-boot.lds连接配置文件 3.Stage1之start.S 4.Stage2之入口start_armboot 1.编译配置 编译前先进行配置:make smdkv210 ...

  4. 自动化测试框架[Cypress Custom Commands]

    Custom Commands是替代PageObject模式非常好的选择,使用Custom Commands可以创建自定义命令或替换现有命令,自定义命令默认存放在/cypress/support/co ...

  5. e2e测试框架之Cypress

    谈起web自动化测试,大家首先想到的是Selenium!随着近几年前端技术的发展,出现了不少前端测试框架,这些测试框架大多并不依赖于Selenium,这一点跟后端测试框架有很大不同,如Robot Fr ...

  6. mochawesome如何合并测试报告_Vue项目采用Cypress做e2e自动化测试,手把手一撸到底...

    一.Cypress 介绍 cypress是一款支持现代浏览器的端到端的自动化测试工具. 项目地址 :https://github.com/cypress-io/cypress 目前22.5k star ...

  7. 如何运行 SAP Spartacus cypress 端到端测试

    首先在本地启动 Spartacus instance, 比如执行 b2c.bat: 进入文件夹:projects/storefrontapp-e2e yarn install: 然后 yarn cy: ...

  8. Cypress自动化测试系列之三

    本文技术难度★★★,如果前编内容顺利执行,请继续. 如果Selenium尚无法灵活运用的读者,本文可能难度较大. "理论联系实惠,密切联系领导,表扬和自我表扬"--我就是老司机,曾 ...

  9. cypress 自动化测试

    文章目录 前言 一.简介 二.原理 三.特性 四.优势 五.安装使用 1. npm install cypress --save-dev # 安装cypress 1.1 在项目根目录下增加配置文件cy ...

最新文章

  1. 情绪调节的自适应_情绪定律:你的情绪决定你的一切
  2. 虚拟化之安装Xen实例
  3. rocketmq 同步刷盘和异步刷盘以及主从复制之同步复制和异步复制你理解了吗
  4. Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务(三)
  5. 京东云擎提供了免费的wordpress一键安装功能了
  6. android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡
  7. VM安装CentOS6.8虚拟机
  8. yolov4用1050ti_简单粗暴的多目标跟踪神器 – DeepSort
  9. flume连接kafka_日志收集系统架构设计:(flume+zookeeper+kafka+php+mysql )
  10. Android内存泄漏的检测流程、捕捉以及分析
  11. 幼儿园案例经验迁移_共教研,促成长阳光天健城幼儿园9月份教研分享
  12. 软件中反跟踪技术和软件调试
  13. 汽车品牌查询及车型大全查询
  14. 综合项目之闪讯破解(四)之 如何用C++编写可被C#调用的Dll
  15. 联想台式计算机编号怎么查,联想台式机主机编号怎么查询
  16. 批处理命令--call和start
  17. Vmware虚拟机ikuai路由配置
  18. 2015年 网络工程师试卷答案及详解
  19. 怎么修改开龙软件里服务器名称,开龙设置服务器备份
  20. 51nod 1677——treecnt

热门文章

  1. 如何搭建网站赚钱?这篇网上赚钱攻略,对你或许有帮助!
  2. Wget最详细的命令介绍
  3. 修改软件的艺术:构建易维护代码的9条最佳实践
  4. RuntimeError: expected scalar type Long but found Int
  5. java oncreate_Android(java)学习笔记112:Activity中的onCreate()方法分析
  6. 邂逅钱塘江畔,一场别开生面的合作伙伴沙龙来了
  7. umi Mock数据
  8. 软件性能测试平台,评测平台介绍及理论性能测试
  9. Redis常考点汇总
  10. 我国上网计算机及用户数量,CNNIC第14次互联网统计报告:上网计算机数