【问题标题】:How do I iterate and save an array using cy.each in Cypress with Cucumber Preprocessor?如何在 Cypress 中使用 Cucumber Preprocessor 中的 cy.each 迭代和保存数组?
【发布时间】:2021-08-17 19:30:17
【问题描述】:
我正在尝试获取即将到来的课程卡片 div 中的所有参数。它有课程信息、课程数据、课程名称、教师姓名和注册按钮。我尝试了以下代码,它打印出 1、1+2、1+2+3、1+2+3+4。我怎么能只有 1 2 3 4 而不是重复?
Then('validate upcoming coursecard all parameters',()=>{
var a = []
cy.get('.upcoming_course_card')
.each(($li, index, $lis) => {
a.push($li[0].innerText)
console.log(a)
})
})
【问题讨论】:
标签:
javascript
cucumber
cypress
cypress-cucumber-preprocessor
【解决方案1】:
我不确定我是否正确理解了这个问题:
- 假设您想准确输出每次迭代中推入数组的元素,然后使用索引来实现:
Then('validate upcoming coursecard all parameters',()=>{
let a = []
cy.get('.upcoming_course_card')
.each(($li, index, $lis) => {
a.push($li[0].innerText)
console.log(a[index])
})
})
- 假设您只想在末尾有一个汇总日志语句,打印出数组的所有内容,那么您只需将日志语句放在循环之外:
Then('validate upcoming coursecard all parameters', () => {
let a = [];
cy.get('.upcoming_course_card').each(($li, index, $lis) => {
a.push($li[0].innerText);
});
console.log(a);
});
作为提示,请考虑使用 let 而不是 var。例如,您可以在 this post 中找到有关此内容的详细信息。