selectタグからオプションを選択してテストしようとしています(これらのオプションはリモートデータベースサーバから取得されます)。ウェブサイトとの通常の交渉中に、このドロップダウンに入力するのに数分の1秒以上かかることはありません。私は次のテストを実行したときしかし、私は次のエラーを取得する CapybaraがAjaxリクエストの完了を待っていない
When /^(?:|I)select "([^"]*)" from "([^"]*)" in search form$/ do |value, field|
within "#select_container" do
save_and_open_page
page.should have_css("#criteria_div_code > option:nth-child(10)")
select(value, :from => field)
end
end
は、
expected css "#criteria_div_code > option:nth-child(10)" to return something (RSpec::Expectations::ExpectationNotMetError)
ドロップダウンには、少なくとも20個のオプションが移入されたので、私はただの存在をテスト10番目のオプション(現在は)。
save_and_open_page
は、少なくとも10個ではなく1個のオプション(デフォルトオプション)が存在することを示しているため、「ExpectionNotMetError」が表示されます。
Capybara.default_wait_time = 30
- リストが作成されるのに十分な時間。
カピバラは、ajaxコールが終了するのを待っていませんか?
ここに何か不足していますか?カピバラはブロックし、ページと相互作用した後終了するAjaxリクエストを待つことができます -
シナリオに「@ javascript」とタグを付けましたか? – Chowlett