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

Testing 使用Cypress,如何测试不存在的元素?,testing,cypress,Testing,Cypress,测试现有的元素非常简单 cy.get('.hello'); 如何断言这个元素不存在呢?你可以很容易地去做 cy .get('.hello') .should('not.exist'); 对我来说没问题。但是,您需要注意此类命令的时间安排。例如,如果您在页面加载后立即使用此命令,它可能会给您一个误报,因为该元素尚未加载,因此在DOM中不存在 对我来说,最好的做法是在另一个元素不存在时,对一些我确信已加载的内容执行额外的cy.get,或者对.should('be.visible') 例如

测试现有的元素非常简单

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')
只是确保一切按预期进行的另一种方法。有时这是有道理的,有时是矫枉过正