Firefox48でSeleniumまわりの修正が入ったのが原因みたいね。
対応だけど、 geckodriverっていうのを別途インストールしないとダメみたい。試してみたわ。特にうちの場合、任意のプロファイルを使いたかったので。
手順はそれぞれ。
$ sudo aptitude install ruby ruby-ffi xvfb
$ sudo gem install selenium-webdriver $ sudo gem install headless
ソースで落としてもいいけど、Debian stretchではバイナリで良かったみたい。
$ wget https://github.com/mozilla/geckodriver/releases/download/v0.11.1/geckodriver-v0.11.1-linux64.tar.gz $ tar -zxvf geckodriver-v0.11.1-linux64.tar.gz $ sudo mv -v geckodriver /usr/local/bin/
ちなみにコードも今までとちょっと違うのよ。古いコードがあるならテスト必須ね。
#!/usr/bin/ruby -EUTF-8 require 'selenium-webdriver' require 'headless' page = Hash.new page["name"] = "webdrivertest" page["url"] = "http://www.google.co.jp/" headless = Headless.new headless.start profile = Selenium::WebDriver::Firefox::Profile.from_name "default" caps = Selenium::WebDriver::Remote::Capabilities.firefox(firefox_profile: profile) driver = Selenium::WebDriver.for :firefox, marionette: true, desired_capabilities: caps driver.get page["url"] old = "" source = "" while 1 sleep 1 # 表示待ち source = driver.page_source if source != old old = source.clone else break end end driver.save_screenshot page["name"]+".png" File.write(page["name"]+".html",source) driver.quit headless.destroy