Rumah  >  Soal Jawab  >  teks badan

Akses atribut href menggunakan invoke() dalam setiap() Cypress

Saya baru menggunakan Cypress dan saya cuba menggunakan invoke() untuk mengakses atribut href bagi setiap teg div daripada kumpulan tetapi ia memberikan ralat. Bolehkah sesiapa mencadangkan anda bagaimana untuk melakukan ini?

cy.get('.bms-scoreboard__game-tile--mls').each(($el,index,$list) => {
            $el.get('a')
                .invoke('attr','href')
                .then(href => {
                    cy.request(href)
                        .its('status')
                        .should('eq',200)
                })
        })

P粉231112437P粉231112437312 hari yang lalu453

membalas semua(2)saya akan balas

  • P粉276577460

    P粉2765774602023-12-13 00:52:13

    $el 是一个 JQuery 元素,而不是它本身在 Cypress 链中。您需要使用 cy.wrap() Gunakannya dalam rantai Cypress.

    cy.get('.bms-scoreboard__game-tile--mls').each(($el,index,$list) => {
                cy.wrap($el)
                    .get('a')
                    .invoke('attr','href')
                    .then(href => {
                        cy.request(href)
                            .its('status')
                            .should('eq',200)
                    })
            })
    

    balas
    0
  • P粉359850827

    P粉3598508272023-12-13 00:36:38

    Saya rasa .get() 不合适 - 它仅适用于 <body>,不适用于每个 '.bms-scoreboard__game-tile--mls'.

    Cuba gunakan .find() dan bukannya

    Gunakan pengendali jQuery

    cy.get('.bms-scoreboard__game-tile--mls')
      .each(($el,index,$list) => {
        const href = $el.find('a').attr('href')
        cy.request(href)
          .its('status')
          .should('eq', 200)
      })
    })
    

    Atau bekerjasama dengan pengendali Cypress

    cy.get('.bms-scoreboard__game-tile--mls')
      .each(($el,index,$list) => {
        cy.wrap($el).find('a')
          .invoke('attr','href')
          .then(href => {
            cy.request(href)
               .its('status')
               .should('eq',200)
          })
      })
    })
    

    Atau alihkan "Cari" ke pemilih pertama

    cy.get('.bms-scoreboard__game-tile--mls a')
      .each($a => {
        const href = $a.attr('href')
        cy.request(href)
          .its('status')
          .should('eq', 200)
      })
    })
    

    balas
    0
  • Batalbalas