capybara-webkitでwebページのスクリーンショットを撮る

capybara使うと簡単にキャプチャできる。もともとjsのheadless testの為のツールなのでjsも実行されるし良い。


Macの場合

brew install qt
gem install capybara capybara-webkit
#!/usr/bin/env ruby
require 'rubygems'
require 'capybara-webkit'

driver = Capybara::Driver::Webkit.new 'web_capture'
driver.visit 'http://shokai.org/blog/'
driver.render 'out.png'

MacGUIでログインしていなくてもキャプチャできる。モニタほぼ使ってないサーバー状態のMacで使いたかったのでありがたい。
webkit2png(http://d.hatena.ne.jp/shokai/20120214/1329201906)だとGUIでログインしないとwindowが見つからないというエラーでキャプチャできなかったが、capybara-webkitならxvfbも必要ない。

Ubuntuの場合

sudo apt-get install qt4-dev-tools xvfb
gem install capybara capybara-webkit headless

GUIが入っていなくてもheadlessでxvfbを作れば良い。

#!/usr/bin/env ruby
require 'rubygems'
require 'capybara-webkit'
require 'headless'

Headless.ly do
  driver = Capybara::Driver::Webkit.new 'web_capture'
  driver.visit 'http://shokai.org/blog/'
  driver.render 'out.png'
end

フォントが入っていないからか、日本語が表示できない


フォントを入れたら日本語でた!! id:myatsmoto に教えてもらった。

sudo apt-get install x-ttcidfont-conf ttf-kochi-mincho-naga10 ttf-kochi-gothic-naga10