Cypress哪些坑

简介: Cypress哪些坑

大家好,我是阿萨。昨天讲解了Cypress的那些独特的地方。今天我们来学习下Cypress 的那些坑。


一. 异步


首先看如下代码:


const btn=cy.get('#btn)
btn.find('btn2').click()

如果在Cypress中写如上的代码,一定会失败。失败的原因是Cypress是异步的。所以有可能第二句代码先执行,所以导致 btn 是underfined。最终用例失败。


二.async /await 不工作


Cypress 不支持async 和await代码。 虽然Cypress 类似于Promise,但是不同于 Promise, Promise 本身没有重试的概念,但Cypress 却支持命令自动重试。


三. 赋值永远失败


自动化测试经常会把返回值传递给 下一个请求。

describe('Refer', function(){let testVar    it('testVar is null',function(){        cy.visit('https://www.baidu.com')        cy.contains('textbox').then(($el)=>{            testVar = $el.text()            cy.log(testVar)  // 这里值不为空        })        cy.log(testVar) // 这里值永远为空    })})


四. 同源策略


同源策略是浏览器安全的基石。 这也意味着 当 2个iframe 直接有访问时,必须同时满足 协议相同,域名相同,端口相同的三个条件。这个限制就会导致如下代码直接报错。

describe('Invalid URL visit', function(){let testVar    it('invalid visit',function(){        cy.visit('https://www.baidu.com')
        cy.visit('https://www.taobao.com')    })
})

大家日常写脚本的时候避免以上四个坑,尤其是赋值的坑。简直被坑惨了。

相关文章
|
6月前
|
JSON 测试技术 数据安全/隐私保护
如何调试cypress脚本?
如何调试cypress脚本?
如何调试cypress脚本?
|
JavaScript 测试技术
cypress初探
E2E测试会发现启动的方式很简单,那么对应的组件测试,也是一样的简单。这样就不演示了,等一下来编写对应的组件,来看看效果
cypress初探
|
前端开发 安全 测试技术
Cypress的哪些坑
大家好,我是阿萨。昨天讲解了Cypress的那些独特的地方。今天我们来学习下Cypress 的那些坑。
302 0
|
Web App开发 前端开发 测试技术
【cypress】1. 什么是cypress,为什么要用它?
【cypress】1. 什么是cypress,为什么要用它?
【cypress】1. 什么是cypress,为什么要用它?
|
JavaScript 前端开发 Ubuntu
【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
【cypress】2. 安装Cypress(windows系统),以及cypress open报错解决。
Cypress 好用的用法
大家好,我是阿萨。之前学习了cypress的最基本的用法。可是有些同学还是反馈不会写cypress,怎么办? 今天就列举一些常见的cypress的写法。
276 0
|
XML JSON JavaScript
【cypress】6. cypress的默认文件结构介绍
【cypress】6. cypress的默认文件结构介绍
【cypress】6. cypress的默认文件结构介绍
Cypress系列(5)- 自定义 Cypress
Cypress系列(5)- 自定义 Cypress
222 0
Cypress系列(5)- 自定义 Cypress
|
JavaScript 前端开发 Go
Cypress - 命令大全
Cypress - 命令大全
758 0