【问题标题】:Iterating Array in Cypress在 Cypress 中迭代数组
【发布时间】:2022-11-17 16:52:00
【问题描述】:

我将 Div 元素推入一个数组,然后一个一个地迭代每个元素,但是当我从每个部分的第一个出来时,数组长度变为 0,我无法进入 for 循环。

在 for 循环中,我想单击每个 div 中的一个部分并执行断言并返回到上一节。

`

let Array =[]
cy.get('.tag-wrapper-item').each(($pills) => {
    cy.log($pills)
    // cy.log('Success')
    Array.push($pills)
    cy.log(Array.length)

 })
cy.log(Array.length)
   for (const element of Array) {
    cy.wrap(element).click()
    cy.wrap(element).find('.--tag.tag-link.--active.tag-selector-button-link').click()
    var OneOffModel = element.text()
    cy.get('.heading-markdown').contains(OneOffModel)
    cy.go('back')
  } 

`

【问题讨论】:

    标签: arrays for-loop cypress


    【解决方案1】:

    赛普拉斯命令异步,因此在赛普拉斯遍历您的数组时,它尚未初始化。

    要解决此问题,您可以使用 then 回调包装您的代码:

    let Array =[]
    cy.get('.tag-wrapper-item').each(($pills) => {
        cy.log($pills)
        // cy.log('Success')
        Array.push($pills)
        cy.log(Array.length)
    
     })
    cy.then(() => {
       cy.log(Array.length)
       for (const element of Array) {
        cy.wrap(element).click()
        cy.wrap(element).find('.--tag.tag-link.--active.tag-selector-button-link').click()
        var OneOffModel = element.text()
        cy.get('.heading-markdown').contains(OneOffModel)
        cy.go('back')
      } 
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多