首页 > 解决方案 > 赛普拉斯单击一组元素但不会永远循环

问题描述

我有几个地方需要点击一些元素,但我不希望它循环播放。我觉得答案就在我面前,但找不到正确的解决方案。

这是一个代码示例,它现在陷入了一个永远循环:

for(let n = 1; n <= 19; n++){
        cy.get('li.active > .nav > :nth-child(n) > a').click({multiple: true})
        cy.wait(400)
    }

我有 19 个元素,它们都是相同的,只是编号为 1-19,我只想让测试点击它们,等待它显示页面,然后点击下一个。


回答

            cy.get('#side-menu > :nth-child(2) > a').click()
        cy.wait(400)
        cy.get('li.active > .nav').each(($ele) => {
  cy.wrap($ele).find('a').click({multiple:true})
})

还照顾了我的另一个 for 循环,它永远持续下去并且永远不会停止,除非手动停止像这个原始问题一样通过替换它each()

    cy.get('#side-menu > li > a').each(($ele) => {
        cy.wrap($ele).click({multiple:true})
        })
    ```

标签: javascriptfor-loopcypress

解决方案


您可以使用each()循环遍历您的元素并一一单击按钮 -

cy.get('li.active > .nav').each(($ele) = > {
  cy.wrap($ele).find('a').click()
})

推荐阅读