我需要遍历一组标签,这些标签具有与之关联的特定类并具有文本值。
例如。我想将所有包含文本的跨度下的文本取下来,将这些数字加起来,然后将它们存储在变量中,以将它们与屏幕上的其他内容进行比较:
<span class="property-ut text-old">12.50</span>
<span class="property-ut text-old"></span>
<span class="property-ut text-old"></span>
<span class="property-ut text-old">.50</span>
<span class="property-ut text-old">1.50</span>
我希望将14.50的值存储到变量中,并将其与屏幕上的其他值进行比较。
答案 0 :(得分:0)
此处无需使用jQuery,赛普拉斯有一个'each'方法:https://docs.cypress.io/api/commands/each.html#Syntax
金额将以文本形式表示,因此您需要转换为not concat。如果您的值> 1,000,也会去除逗号
let sum = 0
let expectedVal = 14.50
cy.find('.old-text').each(($li, index, $lis) => {
sum += parseFloat($li.text().replace(',', ''))
if(index == $lis.length - 1) {
assert.equal(expectedVal, sum, 'Expected value equals sum of each line item')
}
}
请谨慎对待已接受的答案,但我无法使它以不同于预期的值失败...
答案 1 :(得分:-1)
在ID为span
的div中的html #mySpantext
标记上方创建本地服务器。使用jquery each
函数遍历每个span类,并按如下所示计算span文本的sum
;
var sum = 0;
Cypress.$('.text-old').each(function() {
sum += +Cypress.$(this).text()||0;
});
完整的柏树测试,如下所示;
describe('Sum of the span element values in Cypress', function() {
it('Sum of the span element', function() {
cy.visit('http://localhost:8080/test')
cy.get('#mySpantext').find('span').then(() => {
var sum = 0;
Cypress.$('.text-old').each(function() {
sum += +Cypress.$(this).text()||0;
});
cy.log("Total sum of all span elements:"+sum);
expect(sum).to.equal(14.5)
})
})
})