常用 api

程序员 2024-9-23 13:05:32 61 0 来自 中国
钩子函数
before() :在当前 describe 的第一个测试用例中仅调用一次
beforeEach() :在当前 describe 下的每一个测试用例实验前都要先实验一次
afterEach() :在当前 describe 下的每一个测试用例实验完都要先实验一次
after() :在当前 describe 的末了一个测试用例中仅调用一次
若包罗多级测试套件,那么父级套件、祖父级套件声明的 hook 函数会作用于所有子级套件的测试用例,孙子级套件的测试用例…以此类推
describe('父测试用例', () => {  before(() => {    cy.log('父 before')  })  beforeEach(() => {    cy.log('父 beforeEach')  })  afterEach(() => {    cy.log('父 afterEach')  })  after(() => {    cy.log('父 after')  })  it('父1', () => {    // 等候 true 即是 true    expect(true).to.eq(true);  })  it('父2', () => {    // 等候1即是1    expect(1).to.be.eq(1)  })  describe('我是子用例', () => {    before(() => {      cy.log('子 before', 2222)    })    beforeEach(() => {      cy.log('子 beforeEach', 1111)    })    it('子测试1', () => {      expect(true).to.eq(true);    })    it('子测试2', () => {      expect(false).to.eq(false);    })  })})获取元素

  • cy.get(selector)
cy.get('.el-button--primary')cy.get('[placeholder="请输入域账号/邮箱/手机号"]')

  • cy.find(selector)
    该方法用来在 DOM 树中搜索已被定位到的元素的后代,并将匹配到的元素返回为一个新的 jQuery 对象,好比:
cy.get("ul").find('#li1')

  • cy.contains(content)
    该方法用来获取包罗指定文本的 DOM 元素
cy.contains('提交')cy.contains('ul>li', '测试')

  • children
    获取 匹配元素下的所有子元素
cy.get('ul').children()cy.get('ul').children('#li1')

  • parents
    获取匹配的DOM元素下的所有父元素,包罗爷爷祖父...
cy.get('#li1').parents()

  • eq(index)
    获取匹配元素索引下的元素
cy.get('ul>li').eq(1)

  • 断言
    should
    1). 长度 have.length
// 通过 get 获取到的元素是否有3个cy.get('li.selected').should('have.length',3)2). 类 have.class
// .completed 应该有 text-decoration 和 line-through 类cy.get('.completed').should('have.css','text-decoration','line-through')// 通过 get 找到的表单中的 input 输入框是否没有拥有 disabled 的 classcy.get('form').find('input').should('not.hava.class','disabled')3). 值 have.value
// 找到的元素中,是否有值为 poloyy 的元素cy.get('textarea').should('have.value','poloyy')4). 文本内容 not.contain
// 找到的元素中的文本应该不包罗点击cy.get('a').parent('span.help').should('not.contain','点击')5). 针对元素是否可见 be.visible
// button 元素应该可见cy.get('button').should('be.visible')// button 元素应该不可见cy.get('button').should('not.be.visible')6). 元素是否存在 exist
// 应该不存在一个id 为 loading 的cy.get('#loading').should('not.exist')7). 针对元素状态 be.checked
// 应该有一个单选框为选中状态cy.get(':radio').should('be.checked')

  • 点击事故


  • 操纵页面元素下令
cy.get('input').type('输入')cy.get('input').first().focus()cy.get('input').eq(0).type('234').clear()cy.get('form').submit()cy.get('[type="radio"]').first().check()cy.get('select').select('user')cy.get('footer').scrollIntoView()cy.get('a').trigger('mousedown') 5.png
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:48, Processed in 0.178300 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表