在我的Vaadin Web应用程序由Selenium IDE测试(不是Vaadin Testbench - 我意识到这一点,但我不想用它)我想验证,错误消息弹出不被触发=>因此测试可以继续运行。硒IDE - 测试是否不弹出错误弹出
我没有问题确定弹出。它的定位器是
css=div.v-Notification.failure
我检查了Selenium IDE能够正确识别这个元素的存在。
但是在我的webapp中有延迟的问题。当Selenium IDE点击一个GUI元素时,数据请求被发送到ESB。当ESB关闭或发生错误时,会通知webapp并显示错误弹出窗口。 但是,这不会立即发生,请求的处理需要一些时间。
所以测试assertElementNotPresent
总是通过,因为在GUI点击之后弹出窗口还没有生成。我知道关于AJAX testing in Selenium的文章,但它在这种情况下也不能帮助我,因为waitForElementNotPresent
也会立即假定弹出窗口不在那里,尽管它只出现几分钟后...显然,我不能使用对面的waitForElementPresent
,因为我想让我的测试在弹出的错误不存在时继续。
“正在工作”的唯一东西是硬编码pause
步骤测试,但这不是一个好方法(参考链接的文章,如果您怀疑为什么......也不希望我的测试套件采取年龄有很多停顿)。
任何其他的想法或方法,可以让我有点?
最初的问题是,你不知道什么时候弹出窗口会显示,所以除了使用'waitForElementPresent(popup)if(popup = null)proceed'的特定超时值外,我不认为有更好的方法。除非你知道接下来会发生什么,那么你可以使用'waitForElementPresent(anyElementOnNewPage)' – kurakura88