У меня есть элемент Select2 на странице, которая загружает результаты через ajax. Хотелось бы проверить это с помощью capybara/rspec (используя драйвер poltergeist), но так как элемент 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 выше, очевидно, capybara может найти элемент, но значение не изменяется, а Select2 никогда не делает его вызов ajax. (не может использовать обычный fill_in
там, потому что элемент поля поиска не имеет атрибутов метки, идентификатора или имени)