【Ruby Mac】SeleniumでFirefoxをヘッドレスモードで使う
Firefox 55からヘッドレスモードが搭載されました(ただしLinux版のみ)
2017年9月28日に正式版がリリースされたFirefox 56からはWindows/Macでもヘッドレスモードが利用可能です。
ヘッドレスモードを試したかったのでFirefox45から56にアップデートしSeleniumで動かしてみました。
Firefoxをダウンロード
現時点の最新版は Firefox 56
Firefox をダウンロード — 無料ウェブブラウザー
起動オプションに-headlessをつければヘッドレスモードで起動します。
起動しますがヘッドレスなのでわかりませんw
Seleniumを最新版にアップデート
2.53.0のままだったので最新(3.6.0)にアップデート。
gem update selenium-webdriver
とりあえず起動してみる
Firefox 45と同じプログラムではgeckodriverが見つからないとの旨のエラー。
Uncaught exception: Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.
Firefox47以降はgeckodriverなるものが必要とのこと。
下記からダウンロード
Releases · mozilla/geckodriver · GitHub
パスが通ってるところコピーする。またはパスを通す。
今回は /usr/local/bin にコピーしました。
ヘッドレスモードを試す
これでとりあえず動くようになったのでヘッドレスモードで起動。
オプションに -headless を付けて起動すればOK
require "selenium-webdriver"
options = Selenium::WebDriver::Firefox::Options.new
options.add_argument('-headless')
driver = Selenium::WebDriver.for :firefox, options: options
driver.navigate.to "http://google.com"
element = driver.find_element(name: 'q')
element.send_keys "Hello WebDriver!"
element.submit
puts driver.title
driver.quit
メモリの消費量を比べてみる
上記のヘッドレスモードのオプションあり、なしで起動
2割ぐらい違うね。
別のもうちょっと重い処理。
結構違うし実際全然軽い。
総評
えらくあっさり動いたなぁ。
Seleniumは自身のバージョンとブラウザのバージョンで色々苦労した思い出しか無い。
メモリ、CPUの使用量とかちゃんと記録してみたいんだけどさくっとやる方法ってあるのかな。
やったこと無いのでわかんない(;・∀・)
とりあえずは軽くなるのは間違いないので良さげです。