对于这种情况,是否有任何替代 each() 的方法

问题描述

所以我的网页上有一个按钮列表,我必须遍历这些按钮的列表,并根据内部文本值单击匹配的按钮。现在按钮的数量是动态的,所以有时可能是 5 个,有时可能是 6 个或其他。现在我已经用 each() 编写了一个代码,而且效果很好 -

cy.get('buton').each(($ele) => {
    if ($ele.text().trim() === "insurance") {
        cy.wrap($ele).click()
    }
})

我的问题是有没有其他方法可以编写这个逻辑(不使用每个)。

解决方法

您可以直接选择按钮

cy.contains('button','insurance').click()
,

您可以将 filter()contains() 结合使用以获得所需的按钮并单击它。

cy.get('button')
  .filter(':contains("insurance")')
  .click()