选择器的变换值
Posted
技术标签:
【中文标题】选择器的变换值【英文标题】:Transform value of Selector 【发布时间】:2020-05-27 13:59:06 【问题描述】:我有一个 html 元素 <div id="the-value">30 000</div>
用于计算内容。
我需要将此元素的值断言为有效数字 (>= 20000),但是 value 属性返回一个字符串,我无法使用 .gte()
断言它
此断言失败:AssertionError: expected '30 000' to be a number or a date
await t.expect(Selector('#the-value').value).gte(20000);
如何在断言之前将字符串转换为数字?
【问题讨论】:
在评估之前不能用parseInt()
将其转换为数字吗?
【参考方案1】:
当您使用 testcafe 时,您应该能够等待选择器并稍后在其上运行测试。所以你可以这样做:
const selector = await Selector('#the-value').value;
const selectorNumber = parseInt(selector);
await t.expect(selectorNumber).gte(20000);
【讨论】:
谢谢,这对我有用。由于该值来自后端服务器,因此我不得不在前面加上.wait(2000)
。
啊,有趣。没有想到这种可能。很高兴它现在可以工作了。【参考方案2】:
.expect(+Selector('#the-value').value).gte(20000)
加号将字符串转换为数字,希望这会起作用
另一种方法是使用 parseInt,因为如果字符串中的值不是有效数字,它将静默失败
【讨论】:
这不起作用。.value
返回 Promise<string>
这听起来很奇怪,但是先等待值然后将值转换为数字怎么样?以上是关于选择器的变换值的主要内容,如果未能解决你的问题,请参考以下文章