<分区>
测试一个存在的元素就像
一样简单cy.get('.hello');
如何断言该元素不存在?
<分区>
测试一个存在的元素就像
一样简单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/