在我的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