Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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

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