我正在循环抛出所有 .row
并需要抓取 .row
中的内部元素。有没有办法做到这一点?我无法在 Cypress' 网站上找到有关此的任何文档。
let num = 0
cy.get('.row').each(row => {
let rowDiv = cy.get(row).get('div') // not correct
let rowBtn = cy.get(row).get('button') // not correct
cy.get(rowDiv).should('have.text', 'Task ' + num)
cy.get(rowBtn).should('have.text', "Btn ' + num)
num++
})
回答1
https://docs.cypress.io/api/commands/wrap 将生成的 JQuery 元素转换回 Cypress Chainables。此外,cy.each()
可以为您生成当前迭代的索引,因此不必使用 num
,您可以只使用该索引变量。
cy.get('.row')
.each((row, rowIndex) => { // yields JQuery element and current iteration
cy.wrap(row).find('div').should('have.text', `Task ${rowIndex}`);
cy.wrap(row).find('button').should('have.text', `Btn ${rowIndex}`);
});