Testing 如何在cypress中获取特定属性值的数组

Testing 如何在cypress中获取特定属性值的数组,testing,automation,automated-tests,cypress,end-to-end,Testing,Automation,Automated Tests,Cypress,End To End,我在DOM中有几个元素,每个元素都有自己的属性“id”。我需要创建一个函数,该函数迭代抛出所有这些元素,并将值推送到数组中。这个故事的圆满结局是,这个函数将给我这个包含所有“id”值的数组 我试过这个: function getModelIds() { let idList = []; let modelId; cy.get(someSelector).each(($el) => { cy.wrap($el).invoke('attr', 'id').then(lid

我在DOM中有几个元素,每个元素都有自己的属性“id”。我需要创建一个函数,该函数迭代抛出所有这些元素,并将值推送到数组中。这个故事的圆满结局是,这个函数将给我这个包含所有“id”值的数组

我试过这个:

function getModelIds() {
  let idList = [];
  let modelId;
  cy.get(someSelector).each(($el) => {
    cy.wrap($el).invoke('attr', 'id').then(lid => {
      modelId = lid;
      idList.push(modelId);
    });
  });
  return idList;
}
如果您能帮助我将此代码重写为一个函数,该函数将返回一个包含所有“id”值的数组,我们将不胜感激。

您可以:

Cypress.Commands.add(
“getAttributes”,
{
主题:对,
},
(主题,属性)=>{
常量attrList=[];
cy.wrap(主题)。每个($el=>{
cy.wrap($el)
.invoke('attr',attr)
。然后(lid=>{
按下(盖子);
});
});
返回cy.wrap(属性列表);
}
);
您以后可以这样使用它:

cy.get(someSelector)
.getAttributes('id'))
。然后(ID=>{
cy.log(ids);//记录表示ID的字符串数组
});