模态消失后单击按钮

问题描述 投票:0回答:2

我希望我的测试在模态消失后单击按钮。
所以我写了这个 cypress 脚本:

cy.get("shiny-modal").should("not.exist")
cy.get("#my_button").click

但它不起作用,因为模式仍然存在。
我希望在模式完成(消失)时单击按钮。
我该怎么做?

有没有持续监听事件触发的功能?

modal-dialog cypress click
2个回答
1
投票

考虑页面的状态。首先出现模态框,然后就没有了。

以下内容可阻止测试执行

.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)

0
投票

“模态仍然存在”是什么意思?您需要执行任何操作才能隐藏模式吗?就像单击“x”将其关闭一样。如果是这样,您需要执行此操作。

如果问题在于模式需要太长时间才能消失,因此您无法单击按钮,那么您可以增加超时,如记录的here

如果模态对您不可见(就像人类查看应用程序一样),但它仍然存在于 DOM 中,那么您使用的“应该”断言将会失败,您可能需要使用不同类型的断言 尝试一个来自文档的内容

© www.soinside.com 2019 - 2024. All rights reserved.