Как я могу увидеть, что капибара нашла в неудачном шаге с огурцом?

StackOverflow https://stackoverflow.com/questions/2413992

Вопрос

Я начал переходить от огурца + вебрата к огурцу + капибаре.Теперь поведение «Я должен посмотреть» кажется несколько иным.Большинство из них сейчас терпят неудачу, хотя я ничего не менял на странице.Я заменил фрагмент, который должен быть найден, на некоторые элементы, которые есть на каждой странице, и для некоторого текста это работает, а для другого — нет.Я не могу найти закономерности в том, что есть в содержании страницы, а что нет.Раньше 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 на консоль, если вы не хотите использовать браузер.

Вы всегда можете сделать снимок экрана, если что-то пошло не так.Таким образом я отлаживаю МНОГО неисправных функций.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top