我在使用同一字段(「電子郵件」)在兩個表單上訪問兩個表單時遇到問題。如果我不手動睡覺,水豚似乎在測試的第二部分首次訪問時找到「電子郵件」字段。當第一頁與第二頁具有相同字段時等待第二頁加載的正確方法
# visit the first form and fill out a subscription
visit new_front_form_subscription_path(@web_form_1.id)
fill_in "Email", with: "[email protected]"
fill_in "Field 1", with: "my first data"
click_button "Subscribe"
# visit the second form and fill out a subscription
visit new_front_form_subscription_path(@web_form_2.id)
sleep 1
fill_in "Email", with: "[email protected]"
fill_in "Field 2", with: "my second data"
click_button "Subscribe"
隨着睡眠在那裏,規格通過與飛行的顏色。如果沒有睡眠,第二次表單提交會得到一個驗證錯誤 - 指責一個空白的「電子郵件」值。
有沒有適當的方法來處理這個問題?我討厭在我們的規格中引入手動睡眠。我更願意告訴Capybara忽略頁面上已有內容的概念,或者沿着這些方向。
謝謝。
這有點kludgey,但可能是最好的方式來做到這一點。感謝您的答覆! – Alex
也許我錯了,但如果第二頁尚未加載,那麼'expect'行會失敗嗎? – aceofbassgreg
@aceofbassgreg幾乎所有的水豚方法都會自動等待(包括rspec matchers) - https://github.com/jnicklas/capybara#asynchronous-javascript-ajax-and-friends –