Tôi đang cố gắng kiểm tra việc chọn một tùy chọn từ thẻ chọn (các tùy chọn này được tìm nạp từ máy chủ cơ sở dữ liệu từ xa). Trong quá trình giao tiếp thông thường với trang web, không mất quá một phần nhỏ số giây để điền vào danh sách thả xuống này. Tuy nhiên, khi tôi chạy thử nghiệm sau,Capybara không chờ yêu cầu ajax hoàn thành
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
tôi nhận được lỗi sau,
expected css "#criteria_div_code > option:nth-child(10)" to return something (RSpec::Expectations::ExpectationNotMetError)
Các thả xuống là dân cư với ít nhất 20 tùy chọn và vì vậy tôi chỉ kiểm tra sự hiện diện của Tùy chọn thứ 10 (hiện tại).
save_and_open_page
cho thấy chỉ có một tùy chọn (tùy chọn mặc định) tồn tại thay vì ít nhất 10 và do đó "ExpectionNotMetError" xuất hiện.
Capybara.default_wait_time = 30
- Thời gian dồi dào cho danh sách được điền.
Không phải là capybara đang chờ cuộc gọi ajax kết thúc?
Tôi có thiếu gì đó ở đây không?
Bạn đã gắn thẻ kịch bản là '@ javascript' chưa? – Chowlett