【问题标题】:Cypress - reverse each赛普拉斯 - 反转每个
【发布时间】:2020-08-03 08:48:46
【问题描述】:

我需要从数组中反向获取元素。我必须从最后一个开始。我在 Cypress 中找不到任何与 jQuery 'reverse' 不同的解决方案,但我无法使用它。

不要双向工作:

 cy.get('.btn-remove.action.delete').reverse().each(($el, index, $list) =>  {
                        cy.get($el).click({force:true})
                       cy.wait(1000)
                })

来自 Cypress 的回答 - TypeError: cy.get(...).reverse 不是函数

还有

cy.get('.btn-remove.action.delete').invoke('reverse').each(($el, index, $list) =>  {
                        cy.get($el).click({force:true})
                        cy.wait(1000)
                })

来自赛普拉斯的回答 - CypressError: Timed out retrying: cy.invoke() errored because the property: 'reverse' does not exist on your subject.

或者也许有不同于reverse()的方法?

【问题讨论】:

    标签: jquery each cypress


    【解决方案1】:

    使用eq() 尝试使用 for 循环并从头开始迭代怎么样:

    cy.get('.btn-remove.action.delete').its('length').then((numberOfItems) => {
      for (var i = numberOfItems-1; i>=0; i--) {
        cy.get('.btn-remove.action.delete').eq(i).click({force:true})
      }
    })
    

    也许这不是最干净的方法,但应该可以。

    不确定代码中的 cy.wait(1000) 是什么,但在这里没有必要。 (Actually, you should avoid using cy.wait() as much as possible)

    如果您有任何问题,请告诉我。

    【讨论】:

    • 是的,也许这不是最干净的方式,但效果很好。非常感谢:)
    • @Paweł 很好,没问题。如果我帮助了你,请将我的答案标记为“已接受的答案”;)
    猜你喜欢
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2023-02-14
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多