gpt4 book ai didi

cypress - 文本字段 cypress 中的金额计算

转载 作者:行者123 更新时间:2023-12-05 04:29:18 26 4
gpt4 key购买 nike

我有一个场景,在选择特定产品后,金额会反射(reflect)在文本字段中,当我们单击复选框时,金额会自动翻倍。这是我的代码:

cy.getBySel('textfield').click().then(($title) => {
const op1 = $title.val().replace('$', " ").trim()
cy.log(op1) -- Here i get the amount without the currency ; an amount example can be 25,15
const totalProduct = op1 * 2 ,
cy.log(totalProduct) //when i print here i get NaN
cy.get('#product-checkbox').click()
cy.getBySel('textfield').click().should('have.value', totalProduct)
// Here i need to check the value is equal to op1*2 that is totalProduct

When I am running the test, I am getting:
expected <input> to have value NaN, but the value was 50,30 $

有人可以告诉我为什么即使我正在调整货币也会得到 NaN 吗?

最佳答案

从页面中获取的所有值都是文本。

要对其进行数学运算,请先转换为数字。

const op1 = $title.val().replace('$', " ").trim()
const totalProduct = +(op1.replace(',', '.')) * 2
cy.get('#product-checkbox').click()
cy.getBySel('textfield').click()
.should('have.value', totalProduct.toLocaleString('de-DE'))

上面比较文本值的最后一行使用了两个字符串,但比较数字可能更精确。

const op1 = $title.val().replace('$', " ").trim()
const totalProduct = +(op1.replace(',', '.')) * 2
cy.get('#product-checkbox').click()
cy.getBySel('textfield').click()
.should($title2 => {
const op2 = $title2.val().replace('$', " ").trim()
expect(op2).to.eq(totalProduct) // compare numbers
})

你可以再走一步,做一个转换的函数

const toNumber = ($el) => {
return +($el.val().replace('$', " ").trim().replace(',', '.'))
}

const totalProduct = toNumber($title) * 2
cy.get('#product-checkbox').click()
cy.getBySel('textfield').click()
.should($title2 => {
const op2 = toNumber($title2)
expect(op2).to.eq(totalProduct) // compare numbers
})

关于cypress - 文本字段 cypress 中的金额计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72373262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com