2013-08-27 8 views
1

셀레늄 IDE로 실험하고 대략적인 값을 주장하는 문제가 생겼습니다. ID가있는 요소 내부의 값을 검사해야합니다. 구분 기호로 쉼표 (",")가있는 숫자 값입니다.셀레늄 자바 스크립트 근사값

문제는 숫자 값이 0.01의 공차로 유효한지 확인해야하는 문제입니다. 예를 들어

는 :

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

assertText - value = 2.53 

I는 시험을 통과하고, 또한 예를 전달할 필요하면 상술 된 div SI 또는 2,52 2,53의 값. assertEval을 사용하여 javascript를 삽입 할 수 있다는 것을 이해합니다. 그러나 javascript에는 좋지 않지만 셀레늄의 javascript 기능은 제한적입니다.

도움이 될 것입니다.

답변

1

assertEval을 사용하는 것이 좋습니다. 당신이 필요합니다 자바 스크립트는 내가하지만 this thread에 따라 우리가 처음에 ','에서 소수점을 교체 할 필요가 자바 스크립트 잘 모른다

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

같은 것 '.' (1st line) 그래서 나중에 페이지에서 찾은 문자열을 number (2nd line)로 변환 할 수 있습니다.

${actualText}은 페이지에서 가져온 실제 값을 저장하는 변수이며 ${expectedValue}은 사용자가 직접 정의해야하는 값입니다. 관용 (0.01)은 "하드 코드 된"것이므로 변수로 바꾸고 싶을 수도 있습니다.

이제

는 짧은 (덜 읽을 수)로 만들려면 :

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

최고 :

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

우리가 셀레늄 스크립트를 준비 할 수있는 자바 스크립트를 갖는! 이것은 내가 필요한 해결책인데, 훌륭한 직업이고 고마워요! – j0hny

관련 문제