2013-08-27 41 views
1

我正在嘗試硒IDE,我遇到了一個問題,斷言一個近似值。我需要用一個id來檢查一個元素中的值。它是以逗號(「,」)作爲分隔符的數值。硒javascript的近似值

問題是我需要檢查數值是否有效,容差爲0.01。

例如:

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

assertText - value = 2.53 

我需要例如上述通過測試,並且還傳遞如果DIV SI 2,52或2,53的值。我明白,我可以使用assertEval插入JavaScript,但我不是很好的JavaScript,也從我讀過的JavaScript的功能是有限的。

任何幫助將不勝感激!

回答

1

使用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中,我們可以編寫腳本硒:

 
storeText | id=uniqueId     | actualText 
store  | 2.53       | expectedValue 
assertEval | JS LINE FORM ABOVE GOES HERE | true 
+0

真棒!這只是我需要的解決方案,很好的工作和感謝的人! – j0hny