Как я могу увидеть, что капибара обнаружена в неудачной стадии огурца? - PullRequest
44 голосов
/ 10 марта 2010

Я начал мигрировать из огурца + вебрата в огурец + капибару. Теперь поведение «я должен видеть» выглядит несколько иначе. Большинство из них терпят неудачу сейчас, хотя я ничего не изменил на странице. Я заменил фрагмент, который должен быть найден, некоторыми элементами, которые есть на каждой странице, и для некоторого текста это работает, а для другого текста - нет. Я не могу найти шаблон в том, что находится в содержании страницы, а что нет. Вебрат раньше распечатывал содержание найденной страницы, если оно не содержало требуемой фразы. В любом случае, чтобы капибара показывала, какой текст он получил со страницы, на которой пытался найти этот текст?

Ответы [ 7 ]

40 голосов
/ 13 февраля 2011

Then show me the page вызывает основной метод save_and_open_page вебрата / капибары. Нашел, что полезно при работе со стейком.

32 голосов
/ 10 марта 2010

Попробуйте добавить этот шаг:

Then show me the page
24 голосов
/ 20 декабря 2011

Если вы хотите, чтобы браузер открывал страницу при сбое страницы, вы используете гем 'launchy'. Добавьте его в свой gem-файл, а затем в / features / support создайте файл с именем debugging.rb с содержимым:

After do |scenario|
   save_and_open_page if scenario.failed?
end
9 голосов
/ 14 сентября 2012

Если вы используете 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/

8 голосов
/ 06 июня 2013

Then show me the response не работал для меня с огурцом 1.1. Я нашел полезным написать шаг, используя команду капибары:

print page.html

Выводит текущее состояние DOM

7 голосов
/ 15 мая 2010

Вы также можете использовать «Тогда покажите мне ответ», который выводит HTML на консоль, если вы не хотите использовать браузер.

0 голосов
/ 07 июня 2013

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

...