Maison > Questions et réponses > le corps du texte
Je suis nouveau sur Cypress et j'essaie d'utiliser Ensure() pour accéder à l'attribut href de chaque balise div du groupe mais cela génère une erreur. Quelqu'un peut-il vous suggérer comment procéder ?
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()
Utilisez-le dans la chaîne 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
Je pense .get()
不合适 - 它仅适用于 <body>
,不适用于每个 '.bms-scoreboard__game-tile--mls'
.
Essayez d'utiliser .find()
au lieu de
Utilisez les opérateurs 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) }) })
Ou travaillez avec les opérateurs 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) }) }) })
Ou déplacez "Rechercher" vers le premier sélecteur
cy.get('.bms-scoreboard__game-tile--mls a') .each($a => { const href = $a.attr('href') cy.request(href) .its('status') .should('eq', 200) }) })