如何在Cypress中链式断言table元素同时包含thead和tbody子元素?
实现单链式断言
<table>包含<thead>和<tbody> 这里有几种简洁的单链式写法可以满足需求:
方法1:用.within()限定查询作用域
cy.get('table') .within(() => { cy.get('thead').should('exist') cy.get('tbody').should('exist') })
这种写法会把后续查询限定在目标<table>内部,既保持了链式结构,又清晰完成两个子元素的存在断言。
方法2:在.should()中传入自定义断言逻辑
利用Cypress允许.should()接收函数的特性,直接在回调里完成两个元素的检查:
cy.get('table') .should($table => { expect($table.find('thead')).to.exist expect($table.find('tbody')).to.exist })
这种方式把两个断言合并到一个.should()调用中,完全是单链式结构,逻辑直观且简洁。
方法3:链式调用.find()结合.closest()回退
也可以通过.closest()回到原<table>元素,继续链式查询:
cy.get('table') .find('thead').should('exist') .closest('table') .find('tbody').should('exist')
这种写法全程保持链式调用,不需要拆分两次cy.get('table')。
以上方法都无需依赖完整HTML字符串,仅专注于断言<thead>和<tbody>的存在,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者brain4712
相关产品推荐
相关产品推荐

