headless browserであるCasperJS(PhantomJS)を使いつつ、
動作確認にcasper.capture()を多用するくらいならいっそのこと
GUIを表示させてしまおう。GUIが不要になったら非表示にしよう。
環境
以下環境で動作確認した。
[loft@hoge ~]$ cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [loft@hoge ~]$ uname -a Linux hoge.vs.sakura.ne.jp 3.10.0-229.20.1.el7.x86_64 #1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [loft@hoge ~]$ [loft@hoge ~]$ node -v v0.10.36
PhantomJS, CasperJSインストール
インストール
npm install -g phantomjs npm install -g casperjs
起動確認
[loft@hoge ~]$ phantomjs -v 1.9.8 [loft@hoge ~]$ casperjs --version 1.1.0-beta3
SlimerJS入手
# 入手 # 最新バージョンは https://slimerjs.org/ 参照 wget http://download.slimerjs.org/releases/0.9.6/slimerjs-0.9.6-linux-x86_64.tar.bz2 # 展開 tar jxf ./slimerjs-0.9.6-linux-x86_64.tar.bz2 # とりあえずパス通す場合 # export PATH=$PATH:{展開したディレクトリ}/slimerjs-0.9.6/
ブラウザGUIを表示しつつ起動
engineにslimerjsを指定するとGUIが起動する。
casperjs --engine=slimerjs hoge.js
ブラウザGUIを非表示で起動
方法1
–engine指定を外してGUI非表示にしても良いと思う。そもそもheadlessブラウザなので。
もちろんブラウザエンジンが変わることの影響に注意。
方法2
–engineにslimerjsを指定しつつ、GUI非表示にするには
quick-startに紹介されているように、
Xvfb(X virtual framebuffer)が提供する仮想フレームバッファに画面を出力させてやる。見えないだけでGUI描画はしている。
Xvfbインストール
yum -y install xorg-x11-server-Xvfb # ubuntu # sudo apt-get install xvfb
Xvfb起動
GUI非表示で起動したいアプリケーション(今回はCasperJS)をxvfb-runの後に指定して起動する。
xvfb-run casperjs --engine=slimerjs hoge.js