2017-09-19 10 views
0

정규식을 사용하여 프롬프트에서 적절한 대답을 테스트하려고합니다. 아래 정규 표현식을 사용하여 응답을 테스트 할 때 "true"가 될 것으로 예상되는 잘못된 "false"조건이 발생합니다. 예를 들어 코드를 실행하고 3 번 질문에 대답 할 때 Selenium은 script가 false가 아닌 경우 정규식을 다음과 같은 유형 표현식보다 크거나 같게 변경하면 * javascript {storedVars [ 'userAnswer'] < = 11;} 셀렌은 스크립트가 예상대로 사실이라고 말합니다정규식을 올바르게 사용하려면 Selenium IDE 코드를 어떻게 작성합니까?

추가 정보 : 처음에는 데이터 형식 문제 (즉, 문자열 대 숫자)를 의심했기 때문에 정규식과 비교하는 변수가 숫자인지 확인하기 위해 코드를 작성 했으므로 도움이되지 않았습니다. 다음은 코드입니다. 무엇이 누락 되었습니까?

<tr> 
    <td>showPrompt<\td> 
    <td>Pick a number between 1-11 only!!!&nbsp;&nbsp;&nbsp;<br /> *1<\td> 
    <td>userAnswer<\td> 
<\tr> 
<tr> 
    <td>storeEval<\td> 
    <td>javascript{storedVars['userAnswer'] == ('^[1-9][0-1]?$);}\td> 
    <td>results<\td> 
<\tr> 
<tr> 
    <td>echo<\td> 
    <td>The results is = ${results}.<\td> 
    <td><\td> 
<\tr> 

다음은 동일한 문제를 이해하기 위해 사용한 또 다른 방법입니다. 변수를 숫자 5로 설정했습니다. 그런 다음 5 가지 비교를 수행하여 모두가 "true"를 반환 할 것으로 기대합니다. 그러나 처음 두 테스트 만 true를 반환하고 마지막 세 테스트는 false를 반환합니다. 여기 있습니다. 나는 무엇을 놓치거나 이해하지 못합니까?

<tr> 
    <td>storeEval<\td> 
    <td>javascript{new Number(5);}<\td> 
    <td>nbrAnswer<\td> 
<\tr> 
<tr> 
    <td>echo<\td> 
    <td>The nbrAnswer value is = ${nbrAnswer}.<\td> 
    <td><\td> 
<\tr> 
<tr> 
    <td>storeEval<\td> 
    <td>javascript{storedVars['nbrAnswer'] == 5;}<\td> 
    <td>results<\td> 
<\tr> 
<tr> 
    <td>storeEval<\td> 
    <td>javascript{storedVars['nbrAnswer'] == [5];}<\td> 
    <td>results<\td> 
<\tr> 
<tr> 
    <td>storeEval<\td> 
    <td>javascript{storedVars['nbrAnswer'] == [1-9];}<\td> 
    <td>results<\td> 
<\tr> 
<tr> 
    <td>storeEval<\td> 
    <td>javascript{storedVars['nbrAnswer'] == ('^[1-9]');}<\td> 
    <td>results<\td> 
<\tr> 
<tr> 
    <td>storeEval<\td> 
    <td>javascript{storedVars['nbrAnswer'] == ('^[1-9][1-2]?$');}<\td> 
    <td>results<\td> 
<\tr> 

답변

0

안녕하세요 셀레늄 개발자

나는 내 자신의 문제에 대한 답을 발견했다. 우선 Selenium 2.9.0에서 Selenium 2.9.1로 업그레이드해야했습니다. 그 결과 JavaScript 함수 "test"에 대한 액세스 권한이 부여되었습니다. 그런 다음 작동하는 다음 코드를 작성할 수 있습니다.

  1. 1-11까지의 숫자를 묻습니다.
  2. 프롬프트 변수를 숫자 개체에 넣습니다. (이것이 필요한지 확실하지 않은 경우)
  3. 정규식을 변수로 정의하십시오.
  4. 마지막으로 JavaScript "test"함수를 사용하여 "results"변수에 부울 응답을 생성하십시오.

다음은 코드입니다.

<tr> 
    <td>showPrompt</td> 
    <td>Please select a number between 1-11 only!!!</td> 
    <td>userAnswer</td> 
<\tr> 
<tr> 
    <td>storeEval</td> 
    <td>new Number(storedVars['userAnswer'])<\td> 
    <td>nbrAnswer</td> 
</tr> 
<tr> 
    <td>storeEval</td> 
    <td>javascript{var regExpTester = /^[1-9][0-1]?$/; regExpTester.test(storedVars.nbrAnswer);}</td> 
    <td>results</td> 
<\tr>