gpt4 book ai didi

javascript - Selenium javascript 近似值

转载 作者:行者123 更新时间:2023-11-28 02:00:48 29 4
gpt4 key购买 nike

我正在尝试使用 selenium IDE,并且遇到了断言近似值的问题。我需要检查带有 id 的元素内的值。它是以逗号(“,”)作为分隔符的数值。

问题是我需要检查数值是否有效,容差为 0.01。

例如:

<div id="uniqueId">2,54</div>

assertText - value = 2.53

我需要上面的例子来通过测试,并且如果div si 2,52或2,53中的值也通过。我知道我可以使用assertEval插入javascript,但我不太擅长javascript,而且从我读到的内容来看,selenium的javascript功能是有限的。

任何帮助将不胜感激!

最佳答案

使用assertEval是一个好主意。您需要的 JavaScript 类似于

var numberStr = "${actualText}".replace(",", ".");
var number = parseFloat(numberStr);
var difference = Math.abs(eval(number-${expectedValue}));
(difference <= 0.01)?true:false;

我不太了解 javascript,但根据this thread我们需要首先将小数点从“,”替换为“.” (第一行),以便我们稍后可以将页面上找到的字符串转换为数字(第二行)。

${actualText} 是一个变量,我们在其中存储从页面获取的实际值,而 ${expectedValue} 是您需要自己定义的值。请注意,公差(0.01)是“硬编码的”,您可能也想用变量替换它。

现在让它变得更短(并且可读性更差):

(Math.abs(eval(parseFloat("${actualText}".replace(",", "."))-${expectedValue}))<=0.01)?true:false

有了 javascript,我们就可以准备 Selenium 脚本了:

storeText  | id=uniqueId                   | actualTextstore      | 2.53                          | expectedValueassertEval | JS LINE FORM ABOVE GOES HERE  | true

关于javascript - Selenium javascript 近似值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18460885/

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