我正在尝试使用正则表达式来测试提示中的正确答案。当我使用下面的正则表达式测试响应时,我得到一个错误的“错误”条件,我真的希望它是“真实的”。例如,当我运行代码并回答数字3的问题时,Selenium告诉我,脚本是假的不是真的。如果我将正则表达式更改为大于或等于类型表达式,如此 * javascript {storedVars ['userAnswer']< = 11;} * Selenium说脚本人们的期望是真实的。
附加信息:我首先怀疑数据类型问题(即字符串与数字)。所以我编写代码来确保我与正则表达式比较的变量是一个数字。这也没有帮助。 这是代码。我错过了什么?
<tr>
<td>showPrompt<\td>
<td>Pick a number between 1-11 only!!! <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,后三个测试返回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 :(得分:0)
Hello Selenium Developers
我找到了自己问题的答案。首先,我必须从Selenium 2.9.0升级到Selenium 2.9.1。这让我可以访问JavaScript函数&#34; test&#34;。然后我可以编写下面的代码。
这是代码。
<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>