Rumah > Soal Jawab > teks badan
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粉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) }) })
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) }) })