Ради простоты я пропустил большую часть своего теста и включил только проблемный код. Это:
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
Это не приводит к прохождению теста. Как я могу заставить эти два метода хорошо сочетаться друг с другом и работать в том порядке, в котором пользователь будет работать с веб-страницей?
(Если бы я разместил код из своей спецификации, держу пари, проблема была бы решена быстро.)