有没有办法让js代码强制Selenium测试失败?对于(一个可能很糟糕的)例子,如果我有以下内容:
return document.getElementById('foo').innerHTML == 'hello'
有没有办法让'runScript'命令失败,具体取决于js代码是返回true还是false? (我知道其他Selenium命令可以使用该示例,但我想要一个更通用的解决方案。)
我是否需要学习如何扩展Selenium以添加其他命令?
我对Selenium也比较陌生,所以使用Selenium-rc会解决这个问题吗?
答案 0 :(得分:3)
assertExpression
将为您提供所需的信息。
例如,如果您提到的JavaScript表达式未评估为true,则以下行会导致测试失败。
<tr>
<td>assertExpression</td>
<td>javascript{this.browserbot.getCurrentWindow().document.getElementById('foo').innerHTML == 'hello'}</td>
<td>true</td>
</tr>
答案 1 :(得分:0)
这取决于你想要如何使用硒。在selenese套件中有调用verifyText等等(只有google用于selenese套件和verifyText,waitForCondition)。如果您正在使用硒遥控器,例如java比java代码中的断言要多。使用远程控制,您可以将脚本发送到页面,然后返回代码评估返回的内容。 comparsion / assertion在java客户端中完成。
答案 2 :(得分:0)
的eval( 'asdfklj;'); // Selenium点击它老实说,我自己从未使用过它。需要尽快学习,但我认为它可以炸弹到javascript错误。