Gem: Рельсы 4.1.14.rc2, Капибара 2.5.0, капибары-WebKit 1.7.1Взаимодействуя с bootbox модальностей с версиями Капибара-Webkit
Наше приложение использует bootbox модальности выразить мягкие валидаций для определенных входов. Я пытаюсь использовать accept_confirm
с блочным методом захвата модальный перед тем Webkit автоматически принимает это как так:
modal = accept_confirm do
fill_in " Date of birth", with: "12/31/2015"
click_on "Update Spouse"
end
expect(modal).to # have some sort of message
Я получаю эту ошибку в ответ:
Failure/Error: modal = accept_confirm do
Capybara::ModalNotFound:
Timed out waiting for modal dialog
ли кто-нибудь есть опыт работы с Webkit с модами bootbox?
***** UPDATE раствором *****
Это состояние гонки. Webkit перемещается быстрее, чем bootbox, и по какой-то причине он не использовал время ожидания capybara. Добавление sleep 0.5
после события, запускающего модальный режим загрузки, позволяет запустить тест правильно. Смотрите пример ниже:
fill_in " Date of birth", with: "12/31/2015"
click_on "Add benefit"
sleep 0.5
expect(page).to have_content "some warning message..."
click_on "Make Correction"
sleep 0.5
fill_in " Date of birth", with: "12/31/1905"
click_on "Add benefit"
sleep 0.5
expect(page).to have_content "some warning message..."
click_on "Make Correction"
Хорошо, это было очень полезно, спасибо! Как выясняется, причина, по которой я использую Webkit (его скорость), была причиной этой проблемы. Модификация мода загружалась слишком медленно, поэтому я должен был сказать, что webkit замедляется с помощью нескольких «sleep 0.5» –
@JakeKaad, обычно проще просто отключить анимацию в тестовом режиме (удалить класс fade или через JavaScript), поскольку он вызывает очень много хлопот для некоторых водителей –