Cypress - 验证一列中的每个表行是否包含相同的项目

2024-04-13

我有一个表,但是某种由 DIV 创建的 ag-grid,而不是真正的表元素:

<div role="row" row-index="1" >
<div col-id="name">Name 1</div>
<div col-id="age">25</div>
</div>

<div role="row" row-index="2" >
<div col-id="name">Name 1</div>
<div col-id="age">25</div>
</div>

我想验证每个字段是否带有col-id="name"包含相同的项目。我正在测试某种过滤,因此如果用户过滤名称 1,我想检查每一行,如果只有名称 1 而没有其他内容。

由于我需要检查的每个字段都有相同的 col-id,所以我尝试了以下方法:

cy.get('div[col-id="name"]').contains('Name 1')

or

cy.get('div[col-id="name"]').should('contain','Name 1')

但即使某个字段包含另一个名称,这两种情况都会通过,因为它至少找到一个匹配项。

如何断言每个字段col-id="name"应该只包含名称 1 吗?


也许使用.each()单独测试元素

cy.get('div[col-id="name"]')
  .each($el => {
    expect($el.text()).to.eq('Name 1')
  })

没有 .each()

cy.get('div[col-id="name"]')
  .should($els => {
    const names = [...$els].map(el => el.innerText)
    expect(names.every(name => name === 'Name 1').to.eq(true)
  })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cypress - 验证一列中的每个表行是否包含相同的项目 的相关文章

随机推荐