繁体   English   中英

赛普拉斯有没有办法容纳 cy.get(`[data-cy="${test}"]`).filter(':visible') 和 cy.get(`[data-cy="${test }"]`) 在单个代码中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM