Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

概要

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した時と同じディレクトリにスクリーンショットが保存されるのでさらに便利。

scouty
「あらゆる事象を必然化し、 世の中のミスマッチをなくす」ことをミッションとし、AIヘッドハンティングサービスを開発・運営するスタートアップ
https://lapras.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした