基本上我想要一个IDE行:
如果$ variable匹配XXXXX格式,则输入值'DoesVarMatch'=是
如果变量与regexp匹配,那么我就可以执行条件gotoIf语句。最终我想用日期(验证为dd / mm / yyyy)和电子邮件变量来做这件事,但我开始用一个简单的正则表达式来解决逻辑问题。
我尝试了以下(不起作用):
<tr>
<td>gotoIf</td>
<td>'Green' == /[Gg]reen/</td>
<td>GreenTrue</td>
</tr>
<tr>
<td>stop</td>
<td></td>
<td></td>
</tr>
<tr>
<td>label</td>
<td>GreenTrue</td>
<td></td>
</tr>
我也试过使用javascript(也没用,我期望返回一个True值):
<tr>
<td>runScript</td>
<td>var re = /[Gg]reen/.test('Green'); return re.test('Green');</td>
<td>Colour</td>
</tr>
<tr>
<td>echo</td>
<td>${Colour}</td>
<td></td>
</tr>
以下执行正确,但我似乎无法使用它们来定义是/否逻辑:
<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>
我很欣赏使用Selenium使用regexp或javascript来定义我可以用来进行逻辑测试的变量的任何见解。
答案 0 :(得分:0)
我找到了解决方案。如果有人有任何改善我在这里的建议,请随时评论。基本上不是创建值然后执行gotoIf语句我使用正则表达式验证本身来确定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>
答案 1 :(得分:0)
就像一个抬头。你使用verify / assertEval命令的方式是正确的,因为它正确地等同。但不是参数
verifyEval | logicaltest | outcome
因此,如果您的逻辑测试不是==
,那么您需要更好的语法。例如
verifyEval | 'Green'!==/[Gg]reen/ | false/true
答案 2 :(得分:0)
Hello Selenium Developers
我找到了获得布尔结果的答案,以便在此问题中使用。首先,升级到Selenium 2.9.1或更高版本。这使您可以访问JavaScript函数&#34; test&#34;。然后,您可以编写以下代码,以便为您提供可以在&#34; gotoif&#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>