32
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

「Selenium::WebDriver::Error::WebDriverError: unable to connect to chromedriver 127.0.0.1:9515」または「Selenium::WebDriver::Error::UnknownError: unknown error: cannot find Chrome binary」のエラーに対応する

Last updated at Posted at 2018-12-05

#はじめに
Ruby on Rails 5 速習実践ガイドでのテスト環境構築中にはまりました。

##実行環境
Rails (5.2.1)
Ruby (2.5.1)
Selenium-webdriver (3.141)
capybara (3.12.0)
rspec-rails (3.8.1)
chromedriver-helper (2.1.0)

Ubuntu VERSION="18.04.1 LTS (Bionic Beaver)"

#発生した問題

vagrant@ubuntu-bionic:/vagrant/taskleaf$ bundle exec rspec spec/system/tasks_spec.rb
Capybara starting Puma...
* Version 3.12.0 , codename: Llamas in Pajamas
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:36095
F

Failures:

  1) タスク管理機能 一覧表示機能 ユーザーAがログインしているとき ユーザーAが作成したタスクが表示される
     Got 0 failures and 2 other errors:

     1.1) Failure/Error: visit login_path
          
          Selenium::WebDriver::Error::WebDriverError:
            unable to connect to chromedriver 127.0.0.1:9515
          
          
          
          # ./spec/system/tasks_spec.rb:15:in `block (4 levels) in <top (required)>'

     1.2) Failure/Error: raise Error::WebDriverError, cannot_connect_error_text
          
          Selenium::WebDriver::Error::WebDriverError:
            unable to connect to chromedriver 127.0.0.1:9515

##「unable to connect to chromedriver」への対処法

chromedriver-helperのREADMEにもこのエラーはknown issuesとして紹介されています。
https://github.com/flavorjones/chromedriver-helper

調べているとgem(chromedriver-helper)をアンインストールしてchromedriverを直接ダウンロードすることで動くようになった模様。
https://github.com/SeleniumHQ/selenium/issues/5248

#発生した問題2

chromedriverをインストールして再びテストを実行してみると

vagrant@ubuntu-bionic:/vagrant/taskleaf$ bundle exec rspec spec/system/tasks_spec.rb
Capybara starting Puma...
* Version 3.12.0 , codename: Llamas in Pajamas
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:34647
F

Failures:

  1) タスク管理機能 一覧表示機能 ユーザーAがログインしているとき ユーザーAが作成したタスクが表示される
     Got 0 failures and 2 other errors:

     1.1) Failure/Error: visit login_path
          
          Selenium::WebDriver::Error::UnknownError:
            unknown error: cannot find Chrome binary
              (Driver info: chromedriver=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.15.0-36-generic x86_64)
          
          
          
          # ./spec/system/tasks_spec.rb:15:in `block (4 levels) in <top (required)>'

     1.2) Failure/Error: e = error
          
          Selenium::WebDriver::Error::UnknownError:
            unknown error: cannot find Chrome binary
              (Driver info: chromedriver=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.15.0-36-generic x86_64)
          
          
          
          # /vagrant/taskleaf/vendor/bundle/ruby/2.5.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok'
          # /vagrant/taskleaf/vendor/bundle/ruby/2.5.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
          # /vagrant/taskleaf/vendor/bundle/ruby/2.5.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:84:in `new'
          # /vagrant/taskleaf/vendor/bundle/ruby/2.5.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:84:in `create_response'
          # /vagrant/taskleaf/vendor/bundle/ruby/2.5.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/default.rb:104:in `request'


(略)


          # /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.17.1/lib/bundler/friendly_errors.rb:124:in `with_friendly_errors'
          # /home/vagrant/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-1.17.1/exe/bundle:22:in `<top (required)>'
          # /home/vagrant/.rbenv/versions/2.5.1/bin/bundle:23:in `load'
          # /home/vagrant/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
          # 
          #   Showing full backtrace because every line was filtered out.
          #   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
          #   RSpec::Configuration#backtrace_inclusion_patterns for more information.

Finished in 30.98 seconds (files took 41.99 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/system/tasks_spec.rb:21 # タスク管理機能 一覧表示機能 ユーザーAがログインしているとき ユーザーAが作成したタスクが表示される

##「unknown error: cannot find Chrome binary」への対処法

chromedriverの公式ドキュメントのsetupの部分に次のように書いてありました。(http://chromedriver.chromium.org/getting-started)
・Ensure Chromium/Google Chrome is installed in a recognized location

仮想環境上にGoogle Chromeがインストールされていなかったのが原因だったと思います。
そこでGoogle Chromeがすでにインストールされているローカル環境(mac)での開発にシフトしました。

  1. mac用のchromedriverをインストール(https://chromedriver.storage.googleapis.com/index.html?path=2.44/)

2 パスが通っている場所にchromedriverを置く

$ echo $PATH
/Users/kentaro/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/kentaro/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:

/usr/local/binの下に置きました

3 パスが通っていることを確認

$ which chromedriver
/usr/local/bin/chromedriver

4 テストを実行

$ bundle exec rspec spec/system/tasks_spec.rb
Capybara starting Puma...
* Version 3.12.0 , codename: Llamas in Pajamas
* Min threads: 0, max threads: 4
* Listening on tcp://127.0.0.1:59072
.

Finished in 5.21 seconds (files took 9.85 seconds to load)
1 example, 0 failures

なんとか動いた!

32
18
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?