我是 Cypress 的新手,我嘗試使用 invoke() 從群組中存取每個 div 標籤的 href 屬性,但它給出了錯誤。有人可以建議你如何做嗎?
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()
在 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
我認為.get()
不合適- 它只適用於<body>
,不適用於每個'.bms-scoreboard__game-tile-- mls'
。
嘗試使用 .find()
來取代
使用 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) }) })
或與賽普拉斯運營商合作
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) }) }) })
或將「尋找」移至第一個選擇器
cy.get('.bms-scoreboard__game-tile--mls a') .each($a => { const href = $a.attr('href') cy.request(href) .its('status') .should('eq', 200) }) })