Как указано в ответе, браузер перестает отвечать на запросы при открытии модальных диалоговых окон Alert / Confirm / Prompt. В настоящее время, хотя браузеры научились показывать немодальные окна, Capybara по-прежнему не может оценить какой-либо код в контексте страницы.
Как указано в связанном ответе, просто заглушите метод window.confirm
. Это лучший стабильный способ.
Вы можете написать следующие два шага в Капибаре:
When /I ensure the confirm box returns OK/ do
page.evaluate_script('window.confirm = function() { return true; }')
end
When /I ensure the confirm box returns Cancel/ do
page.evaluate_script('window.confirm = function() { return false; }')
end
Затем вы можете перейти к переписыванию шагов Capybara, чтобы сначала убедиться, что вы оцепили поле подтверждения, и , а затем нажмите на ссылку, которая вызывает окно подтверждения:
When I ensure the confirm box returns OK
And I click on Remove
Then ...