Как я могу увидеть, что капибара нашла в неудачном шаге с огурцом?
-
19-09-2019 - |
Вопрос
Я начал переходить от огурца + вебрата к огурцу + капибаре.Теперь поведение «Я должен посмотреть» кажется несколько иным.Большинство из них сейчас терпят неудачу, хотя я ничего не менял на странице.Я заменил фрагмент, который должен быть найден, на некоторые элементы, которые есть на каждой странице, и для некоторого текста это работает, а для другого — нет.Я не могу найти закономерности в том, что есть в содержании страницы, а что нет.Раньше Webrat печатал содержимое найденной страницы, если оно не содержало требуемой фразы.Можно ли как-нибудь заставить капибару показывать, какой текст она получила со страницы, на которой она пыталась найти текст?
Решение
Попробуйте добавить этот шаг:
Then show me the page
Другие советы
Then show me the page
вызывает основу Webrat/Capybara save_and_open_page
метод.Нашел это полезным при работе со стейком.
Если вы хотите, чтобы браузер открывал страницу при сбое страницы, используйте гем «запуск».Добавьте его в свой драгоценный файл, а затем в /features/support создайте файл debugging.rb с содержимым:
After do |scenario|
save_and_open_page if scenario.failed?
end
Если вы используете 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/
Then show me the response
у меня не сработало с огурец 1.1. Мне показалось полезным написать шаг с использованием команды капибары:
print page.html
Это выводит текущее состояние DOM.
Вы также можете использовать «Тогда покажите мне ответ», который выводит HTML на консоль, если вы не хотите использовать браузер.
Вы всегда можете сделать снимок экрана, если что-то пошло не так.Таким образом я отлаживаю МНОГО неисправных функций.