web-dev-qa-db-ja.com

きゅうり; SeleniumWebDriver-Firefoxの代わりにテストブラウザとしてGoogle Chromeを使用する方法

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)

感謝します!近くなってる...

20
dmonopoly

カピバラの場合、これを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
32
Joel Cogen

今日、chromedriver実行可能ファイルを取得する最も簡単な方法は、chromedriver-helpergemをインストールすることのようです。詳細については、 https://github.com/flavorjones/chromedriver-helper を参照してください。

Gemをインストールする以外に、他のいくつかの回答ですでに述べたのと同じ方法で環境を構成する必要があります。

Capybara.register_driver:Selenium do | app | 
 Capybara :: Selenium :: Driver.new(app、:browser =>:chrome)
 end
3
DonSteep
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
1
user3572816

カピバラを使用している場合は、これを試してください

_Capybara.register_driver :Selenium do |app|_
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

詳細については、 capybara docs を参照してください(特に、ドライバーの構成と追加のセクションを参照してください)

1
iafonov

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

これは私のために働いた

0
Gaurav Saini

クラスsetUp関数で設定「* chrome」を「* googlechrome」に変更してみてください。

0
Nathan Katz