けんちゃんくんさんのWeb日記
2011/10/24

capybara-webkitでAjax後のsave_and_open_page

capybara-webkitでsave_and_open_pageを使ってデバッグをするとき、その前にAjaxを使っているとレスポンスを待たずにブラウザが立ちあがってしまいます。 例えば、下のように書くと意図しない動作に頭を悩ませることになります。

もし "送信する"ボタンを押す # ここでAjax
かつ デバッグ # レスポンスが返ってきてたり、返ってきてなかったりする

ならば "hogehoge"と表示されていること # ここでは処理が終わるまで待つ

Capybaraでは、画面の検証をする場合はデフォルトで2秒までAjaxでの書き換えを待ってくれるのですが、save_and_open_pageではそれを待ってくれないようです。 とりあえず検証しさえすれば待ってくれるので、以下のようにするといいかもしれません。

もし "送信する"ボタンを押す

ならば "送信する"と表示されていること # 絶対マッチするやつ
かつ デバッグ # やった!原因がわかったぞ!

ただ、これはsave_and_open_pageがJavascriptの処理を待ってくれればいいような気がするので、そのうちちゃんと深追いすることにします。

created_at: 2015-08-06 01:43:33 +0900
updated_at: 2015-08-06 01:43:33 +0900