Ruby

Firefox48でSeleniumまわりの修正が入ったのが原因みたいね。

対応だけど、 geckodriverっていうのを別途インストールしないとダメみたい。試してみたわ。特にうちの場合、任意のプロファイルを使いたかったので。

テスト環境

手順

Firefoxと日本語フォントが入ってないならインストールする。

手順はそれぞれ。

Rubyが入ってないならインストール。あとffiとxvfbも。

$ sudo aptitude install ruby ruby-ffi xvfb 

selenium-webdriverと、headlessをインストール

$ sudo gem install selenium-webdriver
$ sudo gem install headless

geckodriverをインストール

ソースで落としてもいいけど、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

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-13 (火) 11:02:16