Skip to content

Instantly share code, notes, and snippets.

@konitter
Last active December 17, 2015 14:38
Show Gist options
  • Save konitter/5625356 to your computer and use it in GitHub Desktop.
Save konitter/5625356 to your computer and use it in GitHub Desktop.
CasperJS on Windows

CasperJS on Windows

PhantomJS installation

CasperJSを動かすにはPhantomJSが必要なのでインストール。

  1. PhantomJS: Download and Install からzipをダウンロードして適当なところに置く。
  2. システムのプロパティとかからファイルを置いた場所のパス;C:\phantomjs(Cドラ直下の例)を環境変数PATHに追記する。
  3. PCを再起動してコマンドプロンプトからphantomjs --versionを叩いてバージョンが出ればインストール成功。
C:>phantomjs --version
1.9.0

CasperJS installation

  1. 適当な場所でgit://github.com/n1k0/casperjs.gitgit cloneする。
  2. システムのプロパティとかからファイルを置いた場所のbatchbinのパス;C:\casperjs\batchbin(Cドラ直下の例)を環境変数PATHに追記する。
  3. PCを再起動してコマンドプロンプトからcasperjs --versionを叩いてバージョンが出ればインストール成功。
C:>casperjs --version
1.1.0-DEV

もし以下のようなエラーが出る場合は、casperjs/modulesにあるjsを呼び出すときのパスが/ではなく\になってしまうPhantomjs側のバグが原因っぽい。
以下の2行目のエラーのところ。

C:>casperjs --version
Error: Cannot find module 'C:/casperjs\modules\cli.js'

  phantomjs://bootstrap.js:289
  phantomjs://bootstrap.js:254 in require
  C:\casperjs\batchbin\..\bin\bootstrap.js:204 in patchedRequire
  C:\casperjs\batchbin\..\bin\bootstrap.js:307
  C:\casperjs\batchbin\..\bin\bootstrap.js:320

PhantomJS側が直してくれればいいんだろうけど、取り急ぎ以下で解決できる。

casperjs/bin/bootstrap.jsの181行目あたりを以下のように書き換える。

-      return fs.isFile(absPath) ? absPath : undefined;
+      var r = fs.isFile(absPath) ? absPath : undefined;
+      if (r && fs.isWindows()) {
+        r = '/' + phantom.casperPath.substr(3, phantom.casperPath.length) + '/modules/' + path + '.js'
+      }
+      return r

Run any regular casper scripts that way

CasperJS用のスクリプトは以下で実行する。

C:>casperjs.bat myscript.js
@jumperson
Copy link

お疲れ様です。
この記事を参考にCasperjsインストールしてみました。
1点質問なんですが、下記のようなスクリプトで日本語が文字化けしてします。
何かご存知ないでしょうか。

/*jshint strict:false*/
/*global require*/
var casper = require('casper').create();
casper.start('http://cookpad.com/', function() {
    this.echo('はじめるよ');
    this.echo(this.getTitle());
});
casper.run();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment