Cypress点击多组元素时避免出现无限循环的解决方案
问题描述
在多个测试场景中需要点击一组结构相同的元素,不希望通过循环遍历实现,此前未找到合适的解决方案。
原实现代码会陷入无限循环,示例如下:
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的元素,测试期望依次点击每个元素,等待页面加载渲染完成后再点击下一个元素。
解决方案
使用Cypress内置的each()方法替代普通for循环即可解决无限循环问题,实现代码如下:
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}) })
内容的提问来源于stack exchange,提问作者HyeEun
相关产品推荐
相关产品推荐

