Mac で Ruby で Firefox の selenium でちょっとつまづいた


Firefox でウェブのフォームにちょっと値を入れた状態にする,ということを Mac 上の Ruby で自動化したかった。

selenium-webdriver という gem を使えば簡単(Rails のデフォルトの Gemfile にもこの gem は書かれている)。

ところが久々に動かそうとしたらつまづいた。

コード

こんな感じで,とりあえずページを開こうとした

Gemfile
# 該当部分
gem "selenium-webdriver"
# 該当部分
driver = Selenium::WebDriver.for(:firefox)
driver.navigate.to("http://localhost:3000/")

エラー

Selenium::WebDriver::Error::UnknownError: newSession

と怒られた。

解決

もともと brew install geckodriver で geckodriver は入ってたんだけど,以下の手順で入れ直したら解決した。

rm '/usr/local/bin/geckodriver'
brew install geckodriver
brew link geckodriver

環境

macOS 10.13.6(High Sierra)
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin15]
geckodriver 0.23.0
Firefox 64