Я начал мигрировать из огурца + webrat в огурец + капибара. Теперь поведение «я должен видеть», кажется, несколько отличается. Большинство из них терпят неудачу, хотя я ничего не менял на странице. Я заменил фрагмент, который должен быть найден с некоторыми материалами, которые есть на каждой странице, а для некоторого текста он работает, а для другого текста - нет. Я не могу найти шаблон в том, что находится в содержимом страницы, а что нет. Webrat используется для печати содержимого страницы, которое оно обнаружило, если оно не содержит требуемой фразы. Есть ли в любом случае, чтобы capybara показывал, какой текст он получил со страницы, на которой он пытался найти текст?Как я могу увидеть, что капибара обнаружила в неудачном шаге огурца?
ответ
Вы также можете использовать «Тогда покажите мне ответ», который выводит HTML в консоль, если вы не хотите использовать браузер.
команда не в пределах огурец для rails3 –
'печать страница.html' (в вашем определении шага) работает в Rails3 –
Then show me the page
звонки webrat/capybara в основе save_and_open_page
метод. Обнаружено, что полезно при работе со стейком.
Если вы хотите, чтобы браузер открывал страницу, когда страница терпит неудачу, вы используете драгоценный камень «запуска». Добавьте его в свой файл драгоценного камня, а затем в/функциях/поддержки создать файл с именем debugging.rb с содержимым:
After do |scenario|
save_and_open_page if scenario.failed?
end
Это впечатляюще полезно, спасибо. Похоже, он должен быть установлен по умолчанию с помощью Cucumber. – dankohn
Если вы используете Javascript или Ajax на ваших страницах, и хочет видеть, что происходит , Я обнаружил, что драйвер Poltergeist очень хорошо позволяет вам попасть в DOM и выяснить, что происходит не так.
Если вы установили драйвер Капибара с возможностью удаленной отладки:
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, inspector: true)
end
Вы можете положить следующую строку в ваших шагов:
page.driver.debug
, который выстреливает новый Хром браузер с текущее состояние DOM, позволяющее вам попасть на консоль. (В моей версии Linux мне пришлось сопоставить хром с хромированным браузером, но в остальном он работал нормально).
Источник информации: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/
Then show me the response
не работает для меня с огурца 1.1. я нашел полезным написать шаг, используя команду водосвинку в:
print page.html
Это выводит текущее состояние DOM
Вы можете всегда это сделать снимок экрана, когда что-то не удалось. Я отлаживаю много неудачных функций таким образом.
Как кто-то совершенно незнакомый с названными технологиями, это мой любимый вопрос о переполнении стека, когда-либо! – Oddthinking
Да, это звучит как-то связанное с зоопарком. – ajmurmann
lol, бедный capybara! –