[英]Is there a way in cypress to accomodate cy.get(`[data-cy="${test}"]`).filter(':visible') and cy.get(`[data-cy="${test}"]`) in a single code?
我有一个类似的代码
cy.get(`[data-cy="${test}"]`).filter(':visible').click({force: true})
它适用于某些测试,但对于某些元素没有“过滤器”,而那些没有过滤器(':可见'),所以我试图在一个代码中同时容纳 function 以保持它对各种按钮的通用性。 有没有办法做到这一点?
我尝试了几个步骤,例如:
cy.get(`[data-cy="${test}"]`).filter(':visible'|| ':hidden').click({force: true})
不确定它是对还是错,但它肯定不起作用!
如果您使用{force: true}
则元素是可见还是隐藏都没有关系,赛普拉斯会单击它。 因此,我认为您不需要过滤器选项。
cy.get(`[data-cy="${test}"]`).click({force: true})
或者,如果您想直接在.filter
中应用 OR 条件,您可以执行以下操作:
cy.get(`[data-cy="${test}"]`).filter(':visible,:hidden').click({force: true})
或者,如果你想使用 If-Else,你可以这样做:
cy.get(`[data-cy="${test}"]`).then(($ele) => {
if ($ele.filter(':visible')) {
cy.wrap($ele).click()
} else if ($ele.filter(':hidden')) {
cy.wrap($ele).click({force: true})
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.