【发布时间】:2021-09-18 23:54:39
【问题描述】:
使用赛普拉斯我正在测试一种产品,该产品包含定期启动的自动保存功能。您无法保证何时会触发自动保存,因为它取决于许多因素。它还有一个手动保存选项,单击一个按钮#saveIcon,该按钮仅在自动保存运行之前出现并在之后隐藏(直到另一个更改需要保存)。
我想查询该页面,如果#saveIcon 可见,请单击它,但如果不可见则单击其他内容。当它不可见时,它似乎具有 CSS 属性 visibility: hidden。
由于 saveIcon 被强制隐藏,我尝试了这个:
cy.get('#saveIcon')
.then($button => {
if ($button.is(':visible')) {
cy.wrap($button).click()
} else {
cy.get('.otherButton').click()
}
})
我希望 .otherButton 被单击,但它试图单击 $button(以完成 IF 部分),而不是在 click() 上超时,因为图标不可见。我猜这个按钮对 Cypress 可见,但对我不可见。
我尝试切换问题,以测试它是否具有 CSS 属性 visibility: hidden 并单击 ELSE 选项,但无法计算出语法。
有什么想法吗?
非常感谢,
【问题讨论】:
-
你试过-
if( Cypress.dom.isVisible($button) )选项吗?
标签: javascript css conditional-statements cypress visibility