9

Homebrew cask fa alcune app che collegano la magia su Mac OS X. Apparentemente non è abbastanza buono perché Selenium WebDriver che cerca l'eseguibile di Firefox non riesce a trovarlo. Di seguito è riportato un messaggio di errore da un test di prova RSpec con selenio di guida Capybara.Selenium WebDriver non riesce a trovare Firefox se installato con la botte di Homebrew

Qual è un buon modo per suggerire la posizione dell'eseguibile di 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' 
+0

FF è installato? –

+0

Come dice il titolo, FF è installato tramite botte di Homebrew. Funziona bene come app Mac, ma è eseguibile non è rilevabile da Selenium-WebDriver. – Sim

risposta

19

Come il msg di errore dice: È necessario specificare Selenium::WebDriver::Firefox::Binary.path per i percorsi app personalizzata.

# in spec_helper.rb 
require 'selenium/webdriver' 

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

Se non si vuole toccare il framework di test, è possibile installare Firefox (ricerche selenio percorso predefinito per) /Applications per farlo funzionare senza impostare il Binary.path.

brew cask install --appdir="/Applications" firefox 
+0

Stavo cercando una soluzione sul lato della botte ma sembra che nessuno sia pronto a breve quindi accetterò questa risposta. – Sim

+2

Ho aggiornato la mia risposta su come installare firefox nella directory di default (che è una correzione "sul lato di botte" che si sta cercando forse). – Markus

+0

Bello! La base implicita per questa risposta è che per impostazione predefinita i binari Cask sono linkati in '/ Users//Applications' ma il selenio-driver sta cercando nella cartella di sistema/Applicazioni' perché è il percorso di installazione predefinito comune per la GUI app. –

4

Ho appena aggiunto il codice per Selenium per cercare questa directory in particolare senza doverlo impostare o modificare appdir. Sarà disponibile nella gemma del selenio-webdriver 2.49+

+0

Questo è grandioso; Grazie. – Sim

Problemi correlati