如何编写Selenium IDE代码以正确使用正则表达式?

时间:2017-09-19 17:28:54

标签: javascript selenium selenium-ide

我正在尝试使用正则表达式来测试提示中的正确答案。当我使用下面的正则表达式测试响应时,我得到一个错误的“错误”条件,我真的希望它是“真实的”。例如,当我运行代码并回答数字3的问题时,Selenium告诉我,脚本是假的不是真的。如果我将正则表达式更改为大于或等于类型表达式,如此 * javascript {storedVars ['userAnswer']< = 11;} * Selenium说脚本人们的期望是真实的。

附加信息:我首先怀疑数据类型问题(即字符串与数字)。所以我编写代码来确保我与正则表达式比较的变量是一个数字。这也没有帮助。 这是代码。我错过了什么?

<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,后三个测试返回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>

1 个答案:

答案 0 :(得分:0)

Hello Selenium Developers

我找到了自己问题的答案。首先,我必须从Selenium 2.9.0升级到Selenium 2.9.1。这让我可以访问JavaScript函数&#34; test&#34;。然后我可以编写下面的代码。

  1. 提示用户输入1-11的数字。
  2. 将提示变量放入数字对象中。 (不确定是否有必要?)
  3. 将正则表达式定义为变量。
  4. 最后,使用JavaScript&#34; test&#34;函数产生一个布尔响应放在&#34;结果&#34;变量
  5. 这是代码。

    <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>