私はcapybara&Seleniumテストを使用しますRailsプロジェクト。テストスクリプトを実行すると、次のようなエラーが発生します。
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=
グーグル Googleの使用方法Chrome Firefoxの代わりにテストブラウザとして
しかし、それは好きな他のエラーが発生します
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver http://127.0.0.1:9515
私はまったく同じ問題を抱えていました。私にとってうまくいったのは、「chromedriver-helper」gemを使用することでした。私のgemfileの一部は次のようになります:
group :development, :test do
gem 'rspec-Rails'
gem 'capybara'
gem 'Selenium-webdriver'
gem 'chromedriver-helper'
end
Mac OS
Watir-webdriverおよびSafariで正常に動作します
browser = Watir::Browser.new :safari
Chromeを使用する場合は、Chromeがインストールされていることを確認し、さらにMac OS開発ツールをインストールする必要があります。
xcode-select --install
また、brewでchromedriverをインストールします
brew install chromedriver
Linuxの場合
ステージングUbuntu 12.04サーバーで同じエラーが発生しました。問題は、chrome自体をこのように(スーパーユーザー権限で))インストールしなかったことです:
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | Sudo apt-key add -
sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
apt-get update
apt-get install google-chrome-stable
Chromedriverをインストールします(システムとバージョンに適切なパスを使用します):
wget http://chromedriver.storage.googleapis.com/2.7/chromedriver_linux64.Zip
unzip chromedriver_linux64.Zip
cp chromedriver /usr/local/bin
chmod +x /usr/local/bin/chromedriver
その後、watir-webdriverをヘッドレスモードで使用することをお勧めします
require 'watir-webdriver'
require 'headless'
headless = Headless.new
headless.start
browser = Watir::Browser.new :chrome
browser.goto 'http://google.com'
...
browser.close
headless.destroy
幸運を!
Ubuntu 12.10で実行すると、エラーメッセージも表示されました。
unable to connect to chromedriver http://127.0.0.1:9515
ダウンロードして正しくインストールしても動作しませんでした。 chromedriver-helper gemを使用してみました。そこで私はchromedriver(/ usr/bin/chromedriver)を手動で実行し、2つのことを見つけました:
1)Sudo apt-get install libnss3
を使用して修正されたlibnss3に不足しているパッケージ依存関係がありました
2)chromedriverのバージョン2.9(2014年2月現在)にはchrome>バージョン31が必要です。v25があり、Sudo apt-get --only-upgrade install google-chrome-stable
を使用して修正されました]
mac osx 10.10とjruby 1.7.12
unable to connect to chromedriver http://127.0.0.1:9515
これが見つかりました-> https://code.google.com/p/Selenium/issues/detail?id=6574#c
module Selenium
module WebDriver
module Chrome
class Service
alias_method :old_start, :start
def start
@process.io.stdout = Tempfile.new("chromdriver-output")
old_start
end
end
end
end
end
mac osx 10.9.4、jruby 1.7.6、Selenium-webdriver 2.42.0、brew install chromedriver-> installed 2.10
got unable to connect to chromedriver http://127.0.0.1:9515
(Selenium::WebDriver::Error::WebDriverError)
これが見つかりました-> https://code.google.com/p/Selenium/issues/detail?id=6574#c
Webdriver/chrome/service.rbにパッチを当てて、
@process.io.stdout = Tempfile.new("chromdriver-output")
before @process.start
問題を解決しました-クリキー!
OS Xで? Brewを使用していますか?指示を逃しましたか?
$>> brew info chromedriver
chromedriver: stable 2.20
...
==> Caveats
To have launchd start chromedriver at login:
ln -sfv /usr/local/opt/chromedriver/*.plist ~/Library/LaunchAgents
Then to load chromedriver now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.chromedriver.plist
それらに従ってください:)私のために働いた。また、クロムを開くのに役立ちます。更新が必要になる場合があります。
これは私のために働いた:
which chromedriver
サークルciを構成するときに問題が発生しました
gem 'headless', '~> 2.3.1'
if ENV['HEADLESS'] == 'on' require 'headless' headless = Headless.new headless.start end
HEADLESS=on bundle exec rspec
でrspecを実行します
この問題が解決される作業構成の例:
これを行うための優れたマニュアルを次に示します。 https://Gist.github.com/ziadoz/3e8ab7e944d02fe872c3454d17af31a5
ubuntu-14-04-x64
chromedriver 127.0.0.1:9515に接続できません
$ chromedriver -v
ChromeDriver 2.33.506092
$ which chromedriver
/usr/local/bin/chromedriver
wget -N http://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.Zip
unzip chromedriver_linux64.Zip
chmod +x chromedriver
Sudo mv -f chromedriver /usr/local/share/chromedriver
Sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
Sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
___
Capybara.register_driver(:headless_chrome) do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
chromeOptions: { args: %w[headless disable-gpu --screen-size=1024x640] }
)
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
desired_capabilities: capabilities
)
end
Capybara.javascript_driver = :headless_chrome
Capybara.current_driver = :headless_chrome
上記のソリューションが機能しない場合は、別のgemsetを作成してテストを実行してください
rvm gemset create <your_gemset_name>
rvm gemset use <your_gemset_name>
gem install bundler
bundle install
この問題は通常、Selenium-webdriverの2つのバージョン間で競合が発生するたびに発生するためです。