前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cypress学习7-连接器connectors

Cypress学习7-连接器connectors

作者头像
上海-悠悠
发布2020-05-13 14:35:39
9270
发布2020-05-13 14:35:39
举报
文章被收录于专栏:从零开始学自动化测试

前言

关于web页面上的选项,通常我们需要断言选项的个数,遍历每个选项的内容.

.each()

代码语言:javascript
复制
<ul class="connectors-each-ul">
              <li data-cypress-el="true">Lara Williams</li>
              <li data-cypress-el="true">William Grey</li>
              <li data-cypress-el="true">Monica Pharrel</li>
            </ul>
代码语言:javascript
复制
cy.get('.connectors-each-ul>li')
  .each(function($el, index, $list){
    console.log($el, index, $list)
  })

.its()

判断选项里面元素个数

代码语言:javascript
复制
<ul class="connectors-its-ul">
              <li>Chai</li>
              <li>Chai-jQuery</li>
              <li>Chai-Sinon</li>
            </ul>
代码语言:javascript
复制
cy.get('.connectors-its-ul>li')
  // calls the 'length' property returning that value
  .its('length')
  .should('be.gt', 2)

.invoke()

隐藏元素判断

代码语言:javascript
复制
<div class="well">
            <div class="connectors-div" style="display: none;">
              This is a div
            </div>
          </div>

定位隐藏元素,对异常隐藏的判断

代码语言:javascript
复制
cy.get('.connectors-div').should('be.hidden')
  // call the jquery method 'show' on the 'div.container'
  .invoke('show')
  .should('be.visible')

.spread()

遍历 arr 依次断言

代码语言:javascript
复制
const arr = ['foo', 'bar', 'baz']

cy.wrap(arr).spread(function(foo, bar, baz){
  expect(foo).to.eq('foo')
  expect(bar).to.eq('bar')
  expect(baz).to.eq('baz')
})

.then()

要使用当前主题调用回调函数,请使用.then()命令。

代码语言:javascript
复制
cy.get('.connectors-list>li').then(function($lis){
  expect($lis).to.have.length(3)
  expect($lis.eq(0)).to.contain('Walk the dog')
  expect($lis.eq(1)).to.contain('Feed the cat')
  expect($lis.eq(2)).to.contain('Write JavaScript')
})

如果回调函数返回一个值,它将被生成到下一个回调,就像在 Promise 回调中一样。

代码语言:javascript
复制
cy.wrap(1)
  .then((num) => {
    expect(num).to.equal(1)

    return 2
  })
  .then((num) => {
    expect(num).to.equal(2)
  })

但与 Promise 不同的是,如果返回未定义的值,则传递给.then(cb)的原始值将被传递给下一个回调。

代码语言:javascript
复制
cy.wrap(1)
  .then((num) => {
    expect(num).to.equal(1)
    // note that nothing is returned from this callback
  })
  .then((num) => {
    // this callback receives the original unchanged value 1
    expect(num).to.equal(1)
  })

如果.then(cb)回调中有Cypress命令,则最后一个命令生成的值将传递给下一个回调。

代码语言:javascript
复制
cy.wrap(1)
  .then((num) => {
    expect(num).to.equal(1)
    // note how we run a Cypress command
    // the result yielded by this Cypress command
    // will be passed to the second ".then"
    cy.wrap(2)
  })
  .then((num) => {
    // this callback receives the value yielded by "cy.wrap(2)"
    expect(num).to.equal(2)
  })
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • .each()
  • .its()
  • .invoke()
  • .spread()
  • .then()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档