У меня есть элемент Select2 на странице, которая загружает результаты через ajax. Хотелось бы проверить это с помощью capybara/rspec (используя драйвер полтергейста), но поскольку элемент Select2 фактически начинается как скрытое поле, а затем заполняет <ul>
после обработки результатов, ни один из обычных помощников select
, fill_in
или choose
не будет работай.
То, что у меня есть сейчас, это что-то вроде
it "should have a search field for events" do
click_link "Select an Event" # this works as expected
within('.select2-container') do # works
find('.select2-search input').set(event.description[0,5]) # won't work!
find(:xpath, "li[text()='#{event.description}']").click
end
click_button "Search"
page.should have_content("Displaying all 2 photos")
end
строка 4 выше, очевидно, капибара может найти элемент, но значение не изменяется, и Select2 никогда не выполняет вызов ajax. (здесь нельзя использовать обычный fill_in
, потому что элемент поля поиска не имеет атрибутов label, id или name)