Ради простоты я пропустил большую часть своего теста и включил только код, вызывающий проблемы. Это:
click_button('Search')
page.select 'Preferred', :from => 'ticket_service_type'
Когда я запускаю это, я получаю следующее:
Failure/Error: page.select 'Preferred', :from => 'ticket_service_type'
Capybara::ElementNotFound:
cannot select option, no select box with id, name, or label 'ticket_service_type' found`
AJAX-запрос триггеров событий нажатия кнопки не имеет никакого отношения к тегу select, поэтому при изменении порядка в тесте тест проходит успешно. Я знаю, что время ожидания Capybara по умолчанию составляет 2 секунды, поэтому я изменил его на 10 с помощью:
Capybara.default_wait_time = 10
Это не приводит к прохождению теста. Как я могу заставить эти два метода хорошо играть друг с другом и работать в том порядке, в котором пользователь будет управлять веб-страницей?
(Если бы я опубликовал код из своей спецификации, держу пари, это было бы решено быстро.)