测试现有元素就像
一样简单cy.get('.hello');
如何断言此元素不存在?
答案 0 :(得分:2)
你可以轻松地去
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');
由于赛普拉斯检查某个元素是否未被任何其他元素覆盖,cy.get('.page-body')
应该会为您提供有关应用当前情况的非常好的参考。对cy.get('.modal').should('not.exist')
的额外检查只是确保一切按预期发生的另一种方法。有时这是有道理的,有时它太过分了。