Selenium IDE - 测试是否出现错误弹出

时间:2016-07-14 12:29:30

标签: selenium testing vaadin selenium-ide ui-testing

在由Selenium IDE测试的我的Vaadin Web应用程序中(不是Vaadin Testbench - 我知道它,但我不想使用它)我想验证,错误消息弹出窗口不是triggered =>所以测试可以继续运行。

识别弹出窗口没问题。它的定位器是

css=div.v-Notification.failure

我已经检查过Selenium IDE是否正确识别了这个元素的存在。

但是我的webapp存在延迟问题。当Selenium IDE单击GUI元素时,数据请求将发送到ESB。当ESB关闭或发生某些错误时,会通知webapp并显示错误弹出窗口。 然而,这不会发生,请求处理需要一些时间。

所以测试assertElementNotPresent总是通过,因为在点击GUI之后还没有生成弹出窗口。我知道关于AJAX testing in Selenium的文章,但在这种情况下它也没有帮助我,因为waitForElementNotPresent也不自觉地认为弹出不存在,尽管它只是片刻之后出现。 ..显然我不能使用相反的waitForElementPresent,因为我希望我的测试在弹出错误时继续。

唯一的事情是"工作"是硬编码pause测试中的一步,但这不是好方法(如果你怀疑为什么,请参阅链接文章......我也不希望我的测试套件需要很长时间才会停顿)。

任何其他想法或方法,可能会让我有点兴奋吗?

2 个答案:

答案 0 :(得分:0)

您提到您正在尝试识别该元素的存在。在这种情况下,请尝试使用assertNotVisiblewaitForNotVisible

答案 1 :(得分:0)

Selenium IDE flowcontrol有一个变种。

检查出来:

storeEval               | 0                               | i
storeEval               | false                           | x
while                   | ${x} == false 
pause                   | 1000
storeElementPresent     | css=div.v-Notification.failure  | x
storeEval               | ${i}+1                          | i
storeEval               | if (${i}>30) {true} else {${x}} | x
endWhile
assertElementNotPresent | css=div.v-Notification.failure

这将等待弹出大约30秒,并且会在弹出窗口中立即失败。我很确定应该有一个更短的方式来执行它。但它应该有用。