Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Cucumber and Capybara-Webkit automatic screenshots on failure
def screen_shot_and_save_page
require 'capybara/util/save_and_open_page'
path = "/#{'%Y-%m-%d-%H-%M-%S')}"
Capybara.save_page body, "#{path}.html"
page.driver.render Rails.root.join "#{Capybara.save_and_open_page_path}" "#{path}.png"
After do |scenario|
screen_shot_and_save_page if scenario.failed?
rescue Exception => e
puts "Snapshots not available for this environment.\n
Have you got gem 'capybara-webkit' in your Gemfile and have you enabled the javascript driver?"
Then /take a snapshot(| and show me the page)/ do |show_me|
page.driver.render Rails.root.join("tmp/capybara/#{'%Y-%m-%d-%H-%M-%S')}.png")
Then %{show me the page} if show_me.present?

This comment has been minimized.

Copy link
Owner Author

@mattheworiordan mattheworiordan commented Nov 16, 2011

Please note that this has been superseded by the Capybara-screenshot gem at


This comment has been minimized.

Copy link

@shahmishal shahmishal commented Jan 7, 2013

How do i change the path of automatic screen shot on failure? currently it saves it in "/" but want to move it to working directory. or How do i turn off automatic screen shot? Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment