Javascript 在Selenium IDE中使用正则表达式定义是/否逻辑

Javascript 在Selenium IDE中使用正则表达式定义是/否逻辑,javascript,regex,selenium,selenium-ide,Javascript,Regex,Selenium,Selenium Ide,基本上,我想要一个IDE行,上面写着: 如果$variable与XXXXX格式匹配,则将值“DoesVarMatch”=Yes 这样,如果变量与regexp匹配,我就可以执行条件gotoIf语句。最终,我想用日期(验证为dd/mm/yyyy)和email变量来实现这一点,但我从一个简单的正则表达式开始,以得到逻辑 我尝试了以下方法(无效): 戈托夫 “绿色”=/[Gg]绿色/ 绿色真实 停止 标签 绿色真实 我还尝试使用javascript(也不起作用,我希望返回一个真实值): 运行脚本

基本上,我想要一个IDE行,上面写着:

如果$variable与XXXXX格式匹配,则将值“DoesVarMatch”=Yes

这样,如果变量与regexp匹配,我就可以执行条件gotoIf语句。最终,我想用日期(验证为dd/mm/yyyy)和email变量来实现这一点,但我从一个简单的正则表达式开始,以得到逻辑

我尝试了以下方法(无效):


戈托夫
“绿色”=/[Gg]绿色/
绿色真实
停止
标签
绿色真实
我还尝试使用javascript(也不起作用,我希望返回一个真实值):


运行脚本
var re=/[Gg]reen/.test('Green');返回重新测试(“绿色”);
颜色
回声
${COLOR}
以下代码正确执行,但我似乎无法使用它们来定义是/否逻辑:

<tr>
    <td>verifyEval</td>
    <td>'Green'</td>
    <td>regexp:[Gg]reen</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>'Green'</td>
    <td>regexp:[Gg]reen</td>
</tr>

验证评估
“绿色”
regexp:[Gg]reen
仓库
“绿色”
regexp:[Gg]reen

我很欣赏任何关于使用Selenium来使用regexp或javascript来定义一个变量的见解,我可以用它来进行逻辑测试

我找到了解决办法。如果任何人有任何建议,以改善我在这里,请随时评论。基本上,我没有创建一个值来执行gotoIf语句,而是使用regex验证本身来确定gotoIf语句

<!--Basic Colour testing-->
<tr>
    <td>verifyEval</td>
    <td>'Green'</td>
    <td>regexp:[Gg]reen</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>'Green'</td>
    <td>regexp:[Gg]reen</td>
</tr>
<tr>
    <td>store</td>
    <td>Blue</td>
    <td>Colour</td>
</tr>
<tr>
    <td>gotoIf</td>
    <td>javascript{ var re = /[Gg]reen/g; re.test(storedVars.Colour);}</td>
    <td>GreenTrue</td>
</tr>
<tr>
    <td>stop</td>
    <td></td>
    <td></td>
</tr>
<tr>
    <td>label</td>
    <td>GreenTrue</td>
    <td></td>
</tr>
<tr>
    <td>stop</td>
    <td></td>
    <td></td>
</tr>

验证评估
“绿色”
regexp:[Gg]reen
仓库
“绿色”
regexp:[Gg]reen
商店
蓝色
颜色
戈托夫
javascript{var re=/[Gg]reen/g;re.test(storedVars.color);}
绿色真实
停止
标签
绿色真实
停止

就像一个提醒一样。您使用verify/assertEval命令的方式是正确的,从某种意义上讲,它正确地等同于。然而,就参数而言并非如此

verifyEval | logicaltest | outcome
因此,如果您的逻辑测试不是
==
,那么您需要更好的语法。比如说

verifyEval | 'Green'!==/[Gg]reen/ | false/true

你好,Selenium开发者

我找到了在这个问题中使用布尔结果的答案。首先,升级到Selenium 2.9.1或更高版本。这使您能够访问JavaScript函数“test”。然后,您可以编写以下代码,以获得一个布尔结果,您可以在“gotoif”中使用该结果。这是我最近使用的一个例子

  • 提示用户输入1-11之间的数字
  • 将提示变量放入数字对象中。(不确定这是否必要?)
  • 将正则表达式定义为变量
  • 最后,使用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>
    
    
    显示提示
    请仅选择1-11之间的数字!!!
    用户应答
    仓库
    新号码(storedVars['userAnswer'])
    回答
    仓库
    javascript{var regExpTester=/^[1-9][0-1]?$/;regExpTester.test(storedVars.nbresponse);}
    结果
    
    verifyEval | 'Green'!==/[Gg]reen/ | false/true
    
    <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>