我希望我的测试在模态消失后单击按钮。
所以我写了这个 cypress 脚本:
cy.get("shiny-modal").should("not.exist")
cy.get("#my_button").click
但它不起作用,因为模式仍然存在。
我希望在模式完成(消失)时单击按钮。
我该怎么做?
有没有持续监听事件触发的功能?
考虑页面的状态。首先出现模态框,然后就没有了。
以下内容可阻止测试执行
.should("not.exist)
在模态出现之前。
// action that makes modal appear, cy.visit() or link click or form submit
cy.get("shiny-modal").should("exist)
cy.get("shiny-modal").should("not.exist)
// proceed with the rest of the test
如果您不知道模式是否被删除或只是隐藏,还可以尝试可见性检查。
cy.get("shiny-modal").should("be.visible)
cy.get("shiny-modal").should("not.be.visible)
“模态仍然存在”是什么意思?您需要执行任何操作才能隐藏模式吗?就像单击“x”将其关闭一样。如果是这样,您需要执行此操作。
如果问题在于模式需要太长时间才能消失,因此您无法单击按钮,那么您可以增加超时,如记录的here
如果模态对您不可见(就像人类查看应用程序一样),但它仍然存在于 DOM 中,那么您使用的“应该”断言将会失败,您可能需要使用不同类型的断言 尝试一个来自文档的内容