一個警告框,我用我的RSpec的測試下面的代碼:如何等待和接受與水豚/硒
describe "Save should create a BasketItem and a Basket" do
subject {
lambda {
click_button I18n.t(:create_basket_and_add_items)
page.driver.browser.switch_to.alert.accept # close the alert box
}
}
it { should change(BasketItem, :count).by(1) }
it { should change(Basket, :count).by(1) }
end
的click_button
火一個不顯眼的JavaScript調用,顯示一條警告彈出窗口。然而,關閉警報框僅在約50%的測試運行中成功,我猜是因爲在命令page.driver.browser.switch_to.alert.accept
正在運行時警報框並非總是在屏幕上。當然,如果警告框未關閉,下一個測試用例會遇到「超時錯誤」。
它工作總是正確的,如果我在click_button
和...alert.accept
之間使用sleep 1
,但它不是一個很好的解決方案。任何想法?