なっく日報

技術やら生活やらのメモ

headless browserメモ

headless browser?

ブラウザです。ただし、画面を描画しません。CUIしかないサーバでも動作します。

何に使えるの?

手でブラウザポチポチクリックして確認する作業全般。 自動テスト、自動画面キャプチャ、自動・・・

どんなものがあるの?

Zombie.JS

jsdomベース。Node.js上で動く。

PhantomJS

Webkitsafariレンダリングエンジンとおんなじ)ベース。Node.js上で動かない。

SlimerJS

Gekko(firefoxレンダリングエンジンとおんなじ)ベース。Node.js上で動かない。

CasperJS

PhantomJSとSlimmerJSを使いやすくしたもの。headless browserというよりはユーティリティ。Node.js上で動かない。

Seleniumってのもあるけど何が違うの?

Seleniumはブラウザをプログラムで動かすフレームワーク。headless browserはブ ラ ウ ザ。 なので、SeleniumでPhantomJSを操作してテストしてる人もいるそう(その方が画面の描画がないから速いとかなんとかつって)

w3mlynxみたいなテキストブラウザとは何が違うの?

JavaScriptをちゃんと解釈してくれるところ。テキストブラウザAjaxバリバリみたいなページに弱い。 最近は頑張ってJavaScriptに対応してくれるテキストブラウザもあるよう。

Node.jsで動かないやつだと何が困るの?

データベースに保存できないとか。Jenkinsで動かしてテストするくらいなら問題ないが。。
でも、大体Node.jsで動くようになるブツが存在する。
例えば、PhantomJSなら

CasperJSなら

などなど