Rails 3.1アプリのCucumberシナリオでは、@ javascriptタグを使用したため、Seleniumがアクティブ化されています。次のエラーが発生します。
Could not find Firefox binary (os=macosx). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path= (Selenium::WebDriver::Error::WebDriverError)
可能であれば、ブラウザとしてGoogle Chromeを使用したいのですが、Firefox(インストールしていません)ではありません)。これは可能ですか?何ができるでしょうか?
実際、Cucumber/Seleniumはブラウザーを検出して使用するべきではありませんか?
====編集====
追加後
Capybara.register_driver :Selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
... features/support/env.rbに、次のエラーが表示されます。
Unable to find the chromedriver executable. Please download the server from http://code.google.com/p/chromium/downloads/list and place it somewhere on your PATH. More info at http://code.google.com/p/Selenium/wiki/ChromeDriver. (Selenium::WebDriver::Error::WebDriverError)
./features/step_definitions/web_steps.rb:45:in `/^(?:|I )am on (.+)$/'
features/update_memories.feature:11:in `Given I am on the home page'
here からダウンロードし、chromedriver実行可能ファイルを/ usr/binに入れようとしましたが、それでも上記のエラーが発生します。
====編集2 ====
さらに一歩進んで、以下に示すように「Sudo chmod + x/usr/bin/chromedriver」を実行すると、cucumberを実行した後に新しいエラーが発生します。
@javascript
Scenario: navigate to memory update page from home page # features/update_memories.feature:11
Given I am on the home page # features/step_definitions/web_steps.rb:44
unable to connect to chromedriver http://127.0.0.1:57870 (Selenium::WebDriver::Error::WebDriverError)
./features/step_definitions/web_steps.rb:45:in `/^(?:|I )am on (.+)$/'
features/update_memories.feature:12:in `Given I am on the home page'
When I activate the edit memory switch for the memory "I played" # features/step_definitions/memories/memory_steps.rb:5
Then I should be on the edit memory page for the memory "I played" # features/step_definitions/web_steps.rb:187
PGError: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
: ROLLBACK (ActiveRecord::StatementInvalid)
感謝します!近くなってる...
カピバラの場合、これをenv.rbに追加します
Capybara.register_driver :Selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Chromeドライバー実行可能ファイル をダウンロードし、パスにコピーします。例: / usr/bin /そして実行可能にする
$ Sudo chmod +x /usr/bin/chromedriver
今日、chromedriver実行可能ファイルを取得する最も簡単な方法は、chromedriver-helpergemをインストールすることのようです。詳細については、 https://github.com/flavorjones/chromedriver-helper を参照してください。
Gemをインストールする以外に、他のいくつかの回答ですでに述べたのと同じ方法で環境を構成する必要があります。
Capybara.register_driver:Selenium do | app | Capybara :: Selenium :: Driver.new(app、:browser =>:chrome) end
Capybara.default_driver = :chrome
Selenium::WebDriver::Chrome::Service.executable_path = '/usr/local/bin/chromedriver' # specify the path of chromedriver
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
カピバラを使用している場合は、これを試してください
_Capybara.register_driver :Selenium do |app|
_Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
詳細については、 capybara docs を参照してください(特に、ドライバーの構成と追加のセクションを参照してください)
bashを使用するLinuxディストリビューションを使用している場合は、PATH変数にchromeドライバーのパスを入れてみてください。
Capybara.register_driver:Selenium do | app | Capybara :: Selenium :: Driver.new(app、:browser =>:chrome)終了
Chromeドライバー実行可能ファイルをダウンロードし、パスにコピーします(例:/ usr/bin /)。
$ Sudo chmod + x/usr/bin/chromedriver
これは私のために働いた
クラスsetUp関数で設定「* chrome」を「* googlechrome」に変更してみてください。