CasperJSがGecko(SlimerJS)にも対応していたので試してみたメモ

CasperJSはheadless browserを操作してテストやスクレイピングを行うことができるユーティリティセットです。

もともとはWebKitのheadless browserたるPhantomJSしか利用できなかったのですが、このたびv1.1-beta1からGeckoのheadless browserであるSlimerJSでも利用できるようになりました。

これまで「headless browserってWebKitだけだし…」という謎の理由で回避していたCasperJSですが、Geckoにも対応したので試してみました。というログです。便利ね、コレ。

試した環境は以下のようになります。

  • Windows 7 x64
  • PhantomJS v1.9
  • SlimerJS v0.8
  • CasperJS 1.1-beta1

Install

1. PhantomJS

PhantomJSのホームページからソースをダウンロードして任意の場所に解凍します。今回は%UserProfile%/local/bin/phantomjs-1.9.1-windowsに解凍しました。

ついでにPathも通しておきましょう。
環境変数PHANTOMHOMEを設定し、先ほどの解凍先ディレクトリを指定します。PHANTOMHOMEPATHに追加すれば完了です。

2. SlimerJS

SlimerJSのホームページからソースをダウンロードして任意の場所に解凍します。今回は%UserProfile%/local/bin/slimerjs-0.8に解凍しました。

ついでにFirefoxのexeに対してSLIMERJSLAUNCHERという環境変数を通しておく必要があります。今回はC:\Program Files (x86)\Mozilla Firefox\firefox.exeを指定しました。

最後にPathも通しておきましょう。
環境変数SLIMERHOMEを設定し、先ほどの解凍先ディレクトリを指定します。SLIMERHOMEPATHに追加すれば完了です。

3. CasperJS

最後にCasperJSのホームページからソースをダウンロードして任意の場所に解凍します。今回は%UserProfile%/local/bin/casperjs-1.1-beta1に解凍しました。

こちらもPathを通します。
環境変数CASPERHOMEを設定し、先ほどの解凍先ディレクトリ配下の/batchbinを指定します。CASPERHOMEPATHに追加すれば完了です。

Run Scripts

以下のコマンドを実行してそれぞれエラーが出なければインストールは成功です。

> phantomjs --version
> slimerjs --version
> casperjs --version

ためしにCasperJSのQuickStartページに掲載されているサンプルを使ってスクリプトを実行してみましょう。
以下のファイルを作成し、sample.jsという名前で保存します。

var casper = require('capser').create();
casper.start('http://casperjs.org/', function() {
  this.echo(this.getTitle());
});
    
casper.thenOpen('http://phantomjs.org', function() {
  this.echo(this.getTitle());
});
    
casper.run();

実行してみましょう

> casperjs sample.js

この場合はPhantomJSを使ってスクリプトが実行されます。
SlimerJSを利用したい場合はengineオプションをつければOKです。

> casperjs sample.js --engine slimerjs

これでWebKitでもGeckoでもheadlessなテストを実行することができます。
やりましたね :)