web-dev-qa-db-ja.com

Selenium WebDriverは、Homebrewキャスクと一緒にインストールするとFirefoxを見つけることができません

Homebrew caskは、Mac OS Xでアプリリンクの魔法を実行します。Firefoxの実行可能ファイルを探しているSeleniumWebDriverがそれを見つけられないため、明らかに十分ではありません。以下は、Seleniumを駆動するRSpecで実行されたCapybaraテストからのエラーメッセージです。

Firefox実行可能ファイルの場所を示唆する良い方法は何ですか?

Failure/Error: Unable to find matching line from backtrace
 Selenium::WebDriver::Error::WebDriverError:
   Could not find Firefox binary (os=macosx). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path=
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/binary.rb:127:in `path'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/binary.rb:60:in `execute'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/binary.rb:34:in `start_with'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/launcher.rb:70:in `start_silent_and_wait'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/launcher.rb:35:in `block in launch'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/socket_lock.rb:20:in `locked'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/launcher.rb:32:in `launch'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/firefox/bridge.rb:24:in `initialize'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/common/driver.rb:31:in `new'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver/common/driver.rb:31:in `for'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/Selenium-webdriver-2.43.0/lib/Selenium/webdriver.rb:67:in `for'
 # /Users/mende/.rbenv/versions/2.1.5/lib/Ruby/gems/2.1.0/gems/capybara-2.4.4/lib/capybara/Selenium/driver.rb:13:in `browser'
12
Sim

エラーメッセージにあるように:カスタムアプリパスにはSelenium::WebDriver::Firefox::Binary.pathを指定する必要があります。

# in spec_helper.rb
require 'Selenium/webdriver'

Selenium::WebDriver::Firefox::Binary.path =
  "/opt/homebrew-cask/Caskroom/Firefox/latest/Firefox.app/Contents/MacOS/firefox"

テストフレームワークに触れたくない場合は、Firefoxを/Applications(Seleniumが検索するデフォルトのパス)にインストールして、Binary.pathを設定せずに動作させることができます。

brew cask install --appdir="/Applications" firefox
22
Markus

Seleniumのコードを追加して、このディレクトリを設定したりappdirを変更したりせずにこのディレクトリを検索します。 Selenium-webdriver gem2.49 +で利用可能になります

4
titusfortner