我想将数组中的数据与使用cypress中的.each从类检索的数据进行比较吗?
我使用下面的代码尝试使用下面的代码遍历FileType数组。
const Filetype = ['Access', 'Excel', 'Text/CSV','PDF','JSON','dsdsd'];
const te = cy.wrap($bodyFind).find('.data-sourcename').should('have.length',6).each(($li) => { cy.log($li.text()); });
te.each(($text)=> {
cy.log("Te" + $text);
//prints ['Access','Excel','Text/CSV','PDF','JSON','XML'];
});
// Converted FileType Array to Cypress object using cy.wrap command.
const cywrap = cy.wrap(Filetype);
te.each((e1)=>cywrap.each((e2)=> {
if(e1 == e2) {
expect(e1).equals(e2);
}
}));
但是e1和e2的值相同。 期望应该失败,并且“ dsdsd”等于“ XML” 而它传递的'dsdsd'等于'dsdsd'
答案 0 :(得分:1)
您可以在此处使用map
。
const filetypes = ['Access', 'Excel', 'Text/CSV','PDF','JSON','dsdsd'];
cy.get('.data-sourcename').should(($els) => {
// map jquery elements to array of their innerText
const elsText = $els.toArray().map(el => el.innerText)
expect(elsText).to.deep.eq(filetypes)
})
答案 1 :(得分:0)
我希望现在您必须已经找到解决方案。但是,仍然没有选定的答案,以为我会添加一个。
const Filetype = ['Access', 'Excel', 'Text/CSV','PDF','JSON','dsdsd'];
cy
.get('whatever element')
.each(($span, i) => {
expect($span.text()).to.equal(Filetype[i]);
});
$span
将遍历每个元素,而.text()
将获取该元素的文本值。