我幾天到寫黃瓜/水豚測試的第一次,我遇到了麻煩。黃瓜/水豚找到()不重試
我有一個Login.feature
文件有兩個特點;一個使用無效憑證測試登錄嘗試,另一個使用有效憑證。前者測試成功,後者失敗。
我通過查找是對每種類型的動作後呈現引導alert
測試它們。在登錄失敗時,頁面會刷新警報消息。如果成功,用戶將被重定向到提供警報的主頁。
我的問題似乎是,在使用有效憑據測試尋找「成功」的警報時,它失敗,因爲該頁面沒有加載。我知道find
方法應該在Capybara.default_wait_time
定義的一段時間內繼續查找給定元素。
以下是簡單的測試我使用的是:
find('div.alert.alert-success')
這導致Capybara::ElementNotFound
錯誤每次。我已將default_wait_time
設置爲不同的長度(最長爲500),但無論如何都會立即發生錯誤。我已經深入到find
的代碼中,並注入了一些輸出,以便我可以看到該塊是否在該段時間內繼續執行 - 它似乎只嘗試一次,並在異常提出時停止。
我看着這個錯誤的方式嗎?從我讀過的內容來看,不鼓勵明確地等待一段時間,但默認機制不適用於我。
你有沒有試過'expect(page).to have_selector('div.alert.alert-success')'?或者'expect(page).to have_selector('#flash_notice')'。如果你發佈你的html代碼會更好 – fabersky
你使用的驅動程序是什麼? –
我也嘗試過'have_selector'方法,結果相同。 我不確定我使用的是哪個驅動程序。我沒有修改它,所以我想默認情況下使用Cucumber v2.4.0 gem的驅動程序。 –