我需要遍历一组标记,这些标记具有与它们关联的特定类,并且具有一个值。
<div class="ratinglabel col-6">
<label>Area 1: Professional Engagement
<span test-data="area_1_Scor">
(4/16)
</span>
</label>
</div>我希望找到(4/16*5)并将它们保存在var中,以便将它们与另一个值进行比较。
我做了这个:
cy.get('[test-data="area_1_Scor"]', { timeout: 2000 })
.then(function($ele) {
var countOfElements = $ele*5;
cy.log(countOfElements);
});
})和
cy.get('[test-data="area_1_Scor"]').each(($li, index, $lis) => {
var sum = 0;
Cypress.$('[test-data="area_1_Scor"]').each(function() {
sum = +Cypress.$(this).text()*5||0;
});
cy.log("Total sum of all span elements:"+sum);
})但是,日志在第一种情况下以NaN的形式出现,而在第二种情况下为0,那么我怎么做呢?
发布于 2022-04-27 07:24:12
您就快到了(第一个块),但是您需要从元素中提取文本,并将文本解析为数字
cy.get('[test-data="area_1_Scor"]', { timeout: 2000 })
.invoke('text')
.then(text => {
const numerator = +text.split('/')[0].replace('(', '')
const denominator = +text.split('/')[1].replace(')', '')
const countOfElements = numerator * 5 / denominator;
cy.log(countOfElements);
});
})第二个块表示有多个元素,如果是这样的话,请使用.each()
let sum = 0;
cy.get('[test-data="area_1_Scor"]', {timeout: 2000})
.each($el => {
cy.wrap($el).invoke('text')
.then(text => {
const numerator = +text.split('/')[0].replace('(', '')
const denominator = +text.split('/')[1].replace(')', '')
const countOfElements = numerator * 5 / denominator;
sum += countOfElements
})
})
})
.then(() => cy.log(sum))测试数学
const times5 = (text) => {
const numerator = +text.split('/')[0].replace('(', '')
const denominator = +text.split('/')[1].replace(')', '')
return Math.round(numerator * 5 / denominator)
}
let sum = 0;
cy.get('[test-data="area_1_Scor"]', {timeout: 2000})
.each($el => {
cy.wrap($el).invoke('text')
.then(times5) // text is passed in automatically
.then(result => sum += result)
})
})
.then(() => cy.log(sum))这样,您就可以用
cy.log(times5("(4/16)")) https://stackoverflow.com/questions/72024539
复制相似问题