module ActionDispatch::SystemTesting::TestHelpers::ScreenshotHelper
def take_screenshot(html: false, screenshot: nil)
* [+artifact+] Display the screenshot in the terminal, using the terminal
iTerm image protocol (https://iterm2.com/documentation-images.html).
* [+inline+] Display the screenshot in the terminal using the
This is the default value.
* [+simple+ (default)] Only displays the screenshot path.
environment variable to control the output. Possible values are:
You can use the +screenshot+ argument or set the +RAILS_SYSTEM_TESTING_SCREENSHOT+
so you can investigate the elements on the page at the time of the screenshot
environment variable to save the HTML from the page that is being screenshotted
You can use the +html+ argument or set the +RAILS_SYSTEM_TESTING_SCREENSHOT_HTML+
one with +Capybara.save_path+
The default screenshots directory is +tmp/screenshots+ but you can set a different
named with a sequential prefix (or 'failed' for failing tests)
to investigate changes at different points during your test. These will be
automating visual testing. You can take multiple screenshots per test
a screenshot of the current state. This can be useful for debugging or
+take_screenshot+ can be used at any point in your system tests to take
Takes a screenshot of the current page in the browser.
def take_screenshot(html: false, screenshot: nil) showing_html = html || html_from_env? increment_unique save_html if showing_html save_image show display_image(html: showing_html, screenshot_output: screenshot) end