Cypress系列(48)- and() 命令详解

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

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

 

作用

  • 创建一个断言,断言将自动重试,直到它们通过或超时
  • 和 should() 一个用法

 

语法格式

.and(chainers)
.and(chainers, value)
.and(chainers, method, value)
.and(callbackFn)

 

参数说明

  • chainers:断言器
  • value:需要断言的值
  • method:需要调用到的方法
  • callbackFn:回调方法,可以满足自己想要断言的内容;且总是返回前一个 cy 命令返回的结果,方法内的 return 是无效的;会一直运行直到里面没有断言

 

and() 返回的结果

在大多数情况下,.and() 返回与上一个命令相同的结果

cy
  .get('nav')                       // 返回 <nav>
  .should('be.visible')             // 返回 <nav>
  .and('have.class', 'open')        // 返回 <nav>

 

但是,某些 chainer 会改变返回的结果

cy
  .get('nav')                       // 返回 <nav>
  .should('be.visible')             // 返回 <nav>
  .and('have.css', 'font-family')   // 返回 'sans-serif'
  .and('match', /serif/)            // 返回 'sans-serif'

 

简单的栗子

对同一结果操作的栗子(button 元素)

cy.get('button').should('have.class', 'active').and('not.be.disabled')

 

chainer 改变返回结果的栗子

html 代码

  <li>
    <a href="users/123/edit">Edit User</a>
  </li>

 

cypress 代码

cy
  .get('a')
  .should('contain', 'Edit User') // 返回的是 <a>
  .and('have.attr', 'href')       // 返回的是 href 的值
  .and('match', /users/)          // 返回的是 href 的值
  .and('not.include', '#')        // 返回的是 href 的值

 

method + value 参数的栗子

断言 href 属性值是否等于 /users

cy
  .get('a')
  .should('have.class', 'active')
  .and('have.attr', 'href', '/users')

 

posted @   小菠萝测试笔记  阅读(3023)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
点击右上角即可分享
微信分享提示