[Document & Workflow] capybara-webkit で、コマンドラインからWebページのスクリーンショットをとる

ブラウザでキャプチャをとりたい時に、Extension がうまく動いてくれなくて困ることがあるので解決できないか。

うまくとれないサイトを忘れてしまったので検証できないけれども、cli で解決できる方法を探してみたら、capybara-webkit を使う方法を見つけたので試してみました。

インストール

Qt に依存しているそうなので、この順番で入れます。

brew install qt
gem install capybara-webkit

こちらも参考に、URIを渡してキャプチャする形式にしてみる。

ss.rb というファイルを作ります。

require 'rubygems'
require 'capybara-webkit'
filename = ARGV[0].to_s.gsub("http", "").gsub("://","").gsub(/[\. [\/ \:]]/, "_") + ".png"
p "printing... #{filename}"
driver = Capybara::Webkit::Driver.new('web_capture').browser
driver.visit ARGV[0].to_s
driver.render("#{filename}", 1280, 650)

使い方

キャプチャできました。

% ruby ss.rb https://www.d-wood.com
"printing... www_d-wood_com.png"

ちょっと見た感じでは、下記の2点が反映されていない。

  • 左上にマウスカーソルと、セレクトフォームが表示されてしまう。
  • Web Font が反映されていない。

Capybara で設定することができそうな気もするんだけれども、それっぽいドキュメントも見つけられず終了。