Я начал мигрировать от огурца + webrat до огурца + капибара. Теперь поведение "я должен видеть", кажется, несколько отличается. Большинство из них терпят неудачу, хотя я ничего не менял на странице. Я заменил фрагмент, который должен быть найден с некоторыми материалами, которые есть на каждой странице, а для некоторого текста он работает, а для другого текста - нет. Я не могу найти шаблон в том, что находится в содержимом страницы, а что нет. Webrat использовал для печати то, что содержимое страницы было найдено, если оно не содержит требуемой фразы. Есть ли в любом случае, чтобы capybara показывал, какой текст он получил со страницы, на которой он пытался найти текст?
Как я могу увидеть, что капибара обнаружила на неудачной стадии огурца?
Ответ 1
Попробуйте добавить этот шаг:
Then show me the page
Ответ 2
Then show me the page
вызывает метод webrat/capybara, лежащий в основе метода save_and_open_page
. Обнаружено, что полезно при работе со стейком.
Ответ 3
Если вы хотите, чтобы браузер открывал страницу, когда страница терпит неудачу, вы используете драгоценный камень "запуска". Добавьте его в свой файл gem, а затем в /features/support создайте файл debugging.rb с содержимым:
After do |scenario|
save_and_open_page if scenario.failed?
end
Ответ 4
Если вы используете Javascript или Ajax на своих страницах и хотите узнать, что происходит, я обнаружил, что драйвер Poltergeist очень хорошо позволяет вам попасть в DOM и выяснить, что происходит не так.
Если вы установили драйвер Capybara с опцией удаленной отладки:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, inspector: true)
end
Затем вы можете поместить следующую строку в свои шаги:
page.driver.debug
Запустит новый браузер Chromium с текущим набором состояний DOM, позволяя вам войти в консоль. (В моей версии Linux мне пришлось сопоставить хром с хромированным браузером, но в остальном он работал нормально).
Источник информации: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/
Ответ 5
Then show me the response
не работал у меня с огурцом 1.1. Мне было полезно написать шаг с помощью команды capybara:
print page.html
Это выводит текущее состояние DOM
Ответ 6
Вы также можете использовать "Then show me response", который выводит HTML на консоль, если вы не хотите использовать браузер.
Ответ 7
Вы всегда можете сделать снимок экрана, если что-то не получилось. Я отлаживаю много неудачных функций таким образом.