在 each() Cypress 中使用 invoke() 访问 href 属性
Accessing href attribute using invoke() in each() Cypress
我是 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)
})
})
$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)
})
})
我认为 .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)
})
})
或使用 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)
})
})
})
或将“查找”移至第一个选择器
cy.get('.bms-scoreboard__game-tile--mls a')
.each($a => {
const href = $a.attr('href')
cy.request(href)
.its('status')
.should('eq', 200)
})
})
我是 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)
})
})
$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)
})
})
我认为 .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)
})
})
或使用 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)
})
})
})
或将“查找”移至第一个选择器
cy.get('.bms-scoreboard__game-tile--mls a')
.each($a => {
const href = $a.attr('href')
cy.request(href)
.its('status')
.should('eq', 200)
})
})