我有一个表,我想确保值不会在使用 Cypress 的列中重复。目前,我正在做
cy.get("#myTable")
.find(".table")
.contains("unique_value")
.should("exist")
这段代码确实检查列中的值是否存在,但不能确保它是表中唯一具有该值的条目。如何通过 Cypress 检查唯一性?
最佳答案
令人惊讶的是,这
cy.get("#myTable")
.find(".table")
.contains("unique_value")
.should('have.length', 1);
甚至这个cy.get("#myTable")
.find(".table td")
.contains("unique_value")
.should('have.length', 1);
将返回 误报 - 如果你用两个 unique_value
运行它它错误地传递的表格单元格。引用 contains - yields表示返回单个值。
我发现最好的方法是移动
contains()
进入.find()
选择器,cy.get("#myTable")
.find('.table td:contains("unique_value")')
.should('have.length', 1)
以上测试了单元格之间的唯一性。如果您还想测试值 单元格内 ,最简单的方法是调用
text()
方法。cy.get("#myTable")
.find('.table td:contains("unique_value")')
.should('have.length', 1) // ensure only one cell has value
.invoke('text')
.should('equal', 'unique_value') // check the exact content of the cell
请参阅本页的第一个示例 Assertions
关于javascript - Cypress - 断言仅存在一个带有文本的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62744248/