计算 children 返回的数量并使用 Cypress 将 children 属性推入数组

count number of children returned and push the children attribute into array using Cypress

我正在尝试计算 children 在执行

时返回的数量

cy.xpath(NODE_PREVIEW_PANEL).children('data-testid')

这样我就可以使用计数将所有值按顺序传递到数组中,避免 .each() 函数的异步。

如何在此处获取 children 的计数?

(或者您可以提出完全不同的解决方案)

我成功使用的一种方法是使用reference variable

let variablesToValidate = {
    numberOfChildren: 0,
    attributes: []
}
cy.xpath(NODE_PREVIEW_PANEL)
    .children('data-testid')
    .each(($element, index, $array) =>{
        cy.wrap($element)
            .should('have.attr', 'attributeName')
            .then(atrributeValue => variablesToValidate.attributes.push(atrributeValue))
    })
    .then($array => variablesToValidate.numberOfChildren = $array.length)

您可以使用索引值来查找元素的位置。你可以这样做:

cy.xpath(NODE_PREVIEW_PANEL).children('data-testid').each((el, index) => {
    //It will give the position of the element  
    Array.push(index);
})