headless browserメモ
headless browser?
ブラウザです。ただし、画面を描画しません。CUIしかないサーバでも動作します。
何に使えるの?
手でブラウザポチポチクリックして確認する作業全般。 自動テスト、自動画面キャプチャ、自動・・・
どんなものがあるの?
Zombie.JS
jsdomベース。Node.js上で動く。
PhantomJS
Webkit(safariのレンダリングエンジンとおんなじ)ベース。Node.js上で動かない。
SlimerJS
Gekko(firefoxのレンダリングエンジンとおんなじ)ベース。Node.js上で動かない。
CasperJS
PhantomJSとSlimmerJSを使いやすくしたもの。headless browserというよりはユーティリティ。Node.js上で動かない。
Seleniumってのもあるけど何が違うの?
Seleniumはブラウザをプログラムで動かすフレームワーク。headless browserはブ ラ ウ ザ。 なので、SeleniumでPhantomJSを操作してテストしてる人もいるそう(その方が画面の描画がないから速いとかなんとかつって)
w3mやlynxみたいなテキストブラウザとは何が違うの?
JavaScriptをちゃんと解釈してくれるところ。テキストブラウザはAjaxバリバリみたいなページに弱い。 最近は頑張ってJavaScriptに対応してくれるテキストブラウザもあるよう。
Node.jsで動かないやつだと何が困るの?
データベースに保存できないとか。Jenkinsで動かしてテストするくらいなら問題ないが。。
でも、大体Node.jsで動くようになるブツが存在する。
例えば、PhantomJSなら
CasperJSなら
などなど