У меня возникла проблема со спецификацией, которая посещает две формы с тем же полем («Электронная почта») в обеих формах , Если я не буду спать вручную, Capybara, похоже, находит поле «Email» от первого посещения во второй части теста.Правильный способ подождать, пока вторая страница загрузится с Capybara, когда первое имеет то же поле, что и второе
# visit the first form and fill out a subscription
visit new_front_form_subscription_path(@web_form_1.id)
fill_in "Email", with: "[email protected]"
fill_in "Field 1", with: "my first data"
click_button "Subscribe"
# visit the second form and fill out a subscription
visit new_front_form_subscription_path(@web_form_2.id)
sleep 1
fill_in "Email", with: "[email protected]"
fill_in "Field 2", with: "my second data"
click_button "Subscribe"
С сон там спецификация проходит с летающими цветами. Без сна вторая подача формы получает ошибку проверки - обвинение в пустом значении «Электронная почта».
Есть ли правильный способ справиться с этим? Я ненавижу вводить ручные сны в наши спецификации. Я бы скорее хотел сказать Капибаре, чтобы игнорировать ее концепцию того, что уже есть на странице, или что-то в этом роде.
спасибо.
Это немного kludgey, но, вероятно, лучший способ это сделать. Спасибо за ответ! – Alex
Возможно, я ошибаюсь, но разве не возможно, что строка 'expect' терпит неудачу, если вторая страница еще не загружена? – aceofbassgreg
@aceofbassgreg Почти все методы capybara ждут автоматически (включая rspec matchers) - https://github.com/jnicklas/capybara#asynchronous-javascript-ajax-and-friends –