LoginSignup
37
35

More than 5 years have passed since last update.

CapybaraでJSを使ったテストは save_screenshot が便利

Last updated at Posted at 2015-08-05

概要

CapybaraでSeleniumやpoltergeistをつかってjs: trueなテストを書くときに、テストが失敗した瞬間の画面が欲しかったりする。

JavaScriptを使わないテストでは save_and_open_page と書けばその時の画面を保存してくれるが、CSSやJSが使われていない.htmlが保存されるので、レイアウトも整っていないし、テストの時に実際にどのような画面が表示されていたのか分かりにくい。

そこで save_screenshot

page.save_screenshot 'screenshot.png'

とすると、その時の画面のスクリーンショットがscreenshot.pngという名前で保存されるので便利。

rails_helper.rb
def take_screenshot
  page.save_screenshot "tmp/capybara/screenshot-#{DateTime.now}.png"
end

と追記しておくと

foo_spec.rb
it 'save screenshot' js: true do
  visit '/bar'
  take_screenshot
end

とかけるし、save_and_open_pageした時と同じディレクトリにスクリーンショットが保存されるのでさらに便利。

37
35
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
35