CasperJSのengineにSlimerJSを指定しブラウザGUIを表示/非表示させる

̃Gg[͂ĂȃubN}[Nɒlj

slimer
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

Xvfb起動
GUI非表示で起動したいアプリケーション(今回はCasperJS)をxvfb-runの後に指定して起動する。

xvfb-run casperjs --engine=slimerjs hoge.js

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>