javascript - Cypress - 断言仅存在一个带有文本的元素

标签 javascript testing cypress

我有一个表,我想确保值不会在使用 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/

相关文章:

cypress - API 请求调用不在 Cypress 测试中等待

用于表单验证的 Javascript 无法正常运行

java - 注入(inject)不同的测试实现

testing - 命令模式导致类爆炸

ruby - 如何测试其中包含 gets.chomp 的函数?

javascript - Cypress测试工具有没有代码生成器

electron - Cypress.io - 是否可以在 headless 模式下发出 CORS 请求

javascript - 在 angularJS 中使用 split() 时无法编辑输入

JavaScript 游戏;阵列中的子弹;当我射击时,无论玩家在哪里,阵列中的所有子弹都会重新发射

javascript - 为什么 Javascript 事件处理程序会更改我的 PHP 变量?