背景
- 意識の低い自動化をしたお話にて、PhantomJSを使えばブラウザ起動なしで実行できるよ、とのコメントをもらった
やってみた
結果
PhantomJSを使用して、ブラウザ起動なしの自動化に改善することができた。(若干の高速化も)
やったこと
PhantomJSのダウンロード
- ここからPhantomJSのWindows用のzipをダウンロード
- 適当な場所に展開
既存のソースを編集
ishiki_hikuikei_source.rb
# coding: utf-8
require "selenium-webdriver"
# PhantomJSのパスを環境変数に追加すれば以下は不要らしいけど、
# うまくいかなかったのでここで指定
Selenium::WebDriver::PhantomJS.path = 'C:\phantomjs_path\bin\phantomjs.exe'
# selenium-webdriver にphantomjs用のmoduleが同梱されているのでこの書き方でOK
@driver = Selenium::WebDriver.for :phantomjs
# 上記のmoduleを使用しない場合は、あらかじめphantomjsを起動したうえで
# 以下の様に記載すればOK。上記のmoduleを使用した方が圧倒的に便利だと思う
# @driver = Selenium::WebDriver.for(:remote, url: "http://localhost:8080")
#以下略
雑感
PhantomJS便利
GUIブラウザの起動が必要なくなったのは大きい。
中身でどんなことをしているのか、どれほどの自由度があるのかは分かっていないけれど、Selenium応用の幅は広がると思う。
要件を満たす実装の推敲
今回の件は元々個人の自己満足のためのものだったのでそれほど重要では無いけど、
要件を満たす実装を見つけても、(時間が許せば)より良い方法を探すのも大事だなと感じた。
おまけ
最近のニュース
パスワードの定期変更をユーザに強制すべきではないと明言している
パスワードの定期変更を明確に否定している