testing - 使用 Cypress ,如何测试不存在的元素?

标签 testing cypress

<分区>

测试一个存在的元素就像

一样简单
cy.get('.hello');

如何断言该元素不存在?

最佳答案

你可以轻松地去

cy
  .get('.hello')
  .should('not.exist');

对我来说工作正常。但是,您需要注意此类命令的时间安排。例如,如果您在页面加载后立即执行此命令,它可能会给您误报,因为该元素尚未加载,因此在 DOM 中不存在。

对我来说,最好的做法是对我非常确定已加载的内容执行额外的 cy.get.should('be.visible')其他元素不存在的时间。

例如,如果您有一个接收输入然后在提交输入后消失的模式,我会断言低于模式的页面的可见性,如下所示:

cy
  .get('.page-body');

cy
  .get('.modal-trigger')
  .click();

cy
  .get('.modal')
  .should('be.visible')
  .type('text')
  .get('.submit')
  .click();

cy
  .get('.page-body')
  .should('be.visible');

cy
  .get('.modal')
  .should('not.exist');

由于 Cypress 检查某个元素是否未被任何其他元素覆盖,cy.get('.page-body') 应该为您提供有关应用程序当前情况的很好引用。对 cy.get('.modal').should('not.exist') 的额外检查只是确保一切按预期发生的另一种方法。有时这是有道理的,有时是矫枉过正。

关于testing - 使用 Cypress ,如何测试不存在的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50634455/

相关文章:

unit-testing - Gradle 脚本测试指南

android - MP3 文件格式 详细信息

electron - 有没有办法在 Cypress Electron 浏览器中查看一些日志记录?

javascript - 如何让 Cypress 在点击之间不等待

variables - cypress:then block 之外的变量范围。我面临问题

javascript - 我可以强制 Cypress 使用特定的 IP 地址吗?

使用 prisma 和 graphql 测试流程

spring - 如何将来自规则的值注入(inject)测试 Spring 上下文?

json - 跟踪 JSON 文件中的更改

javascript - 如何在 Cypress 中定义自定义断言运算符?