Railsアプリケーションでは、ドライバでCapybaraを使用してRspecでjQuery TokenInput fieldのBootstrap modalをテストしようとしています。Capybara(v2)経由のブートストラップモーダルとのやり取りに問題があります
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')
- クリックボタンは、それが
- を作成]を選択し取得するには、Tabキーを押しをシミュレートし、チーム名
- とTokenInputにモーダル
- 塗りつぶしを取得するために、次のように問題になっている部分がありますチーム
- は、名前を確認してくださいページ
に現れるこれはのみ動作しますそれらのすべてがsleep 1
である。それ以外の場合、Capybaraはhave_content
でクラッシュし、最終的にはチーム名が決して適切に選択できなかったため、サーバーエラーが発生します。他のブートストラップモーダルなし TokenInputフィールドは、ロードする前にsleep 1
を必要としません。
これまでに述べたように、睡眠を取り除いてこれが正常に進行する方法はありますか? Capybara 2は何かをテストするためにデフォルトの待機時間内に待機するので、wait_until
を(理由があって)取り出しましたが、それは上記のテストに反映されていないようです。カピバラがこのモードに入る/出る際にその待ち時間に従事していないかのようです。誰でもこれに関する経験はありますか? Rails 3.2.10、Rspec 2.12、Capybara 2、capybara-webkit 0.14.0、TokenInput 1.6を使用しています。
これは役に立つかもしれません:http://blog.crowdint.com/2013/09/20/poltergeist-and-bootstrap-modals.html – Matt