在Rails應用程序中,我試圖在Rspec中使用Capybara和capybara-webkit
驅動程序測試Bootstrap modal和jQuery TokenInput field。有問題的部分如下:通過Capybara(v2)與Bootstrap模式交互的問題
click_link 'Create Team Modal'
sleep 1
within('div#modal_popup') do
fill_in 'input#token-input-team_name', with: 'Fancy team name'
sleep 1
fill_in 'input#token-input-team_name', with: '\t'
sleep 1
click_button 'Create Team'
end
page.should have_content('Fancy team name')
- 點擊按鈕獲取模式
- 填寫TokenInput與隊名
- 模擬一個Tab按鍵讓它選擇
- 創建團隊
- 驗證名稱顯示在頁面
這隻會在工作與所有那些sleep 1
S IN的地方;否則水豚在崩潰have_content
,最終導致服務器錯誤,因爲球隊的名字從來沒有能夠適當地選擇。其他引導模態沒有一個TokenInput場不需要sleep 1
加載完畢之前,但是。
說了這麼多,有沒有什麼辦法擺脫睡覺,並有這種正常進行?水豚2掏出wait_until
(有很好的理由),因爲它會默認等待時間內等待測試的東西...但是,這似乎並沒有在我上面的測試中得到體現;就好像水豚並不在等待週期在進入/退出這個模式搞。有人對此有經驗嗎?使用Rails 3.2.10,Rspec的2.12,水豚2,水豚-webkit的0.14.0,TokenInput 1.6。
這可能會有所幫助:http://blog.crowdint.com/2013/09/20/poltergeist-and-bootstrap-modals.html – Matt