Rspecを実行した時に以下の様なエラーが出た際の対処方法です。
Selenium::WebDriver::Error::WebDriverError:
unable to connect to /usr/local/bin/chromedriver 127.0.0.1:9515
エラーの詳細
こちらのエラーは、ローカル環境で使用しているChromeとChromeDriverのバージョンが一致しない場合に起こります。ですので基本的にここを一致させてあげれば解決すると思われます。
解決方法
先に解決方法をご紹介しておきます。他にも調べてみるといろいろな方法が載っていたり、躓きポイントがあったりしますので、そちらは後ほどご紹介します。
HomebrewでChromeDriverを入れている場合はupgradeでいけます。
$ brew upgrade chromedriver
もしくは https://googlechromelabs.github.io/chrome-for-testing/ こちらのページから該当のものをダウンロードして、ローカルに展開する方法でも大丈夫かと思われますが、こちらの方は試していないためページをご紹介するにとどめておきます。
その他
開発元が未確認のため開けません
ChromeDriverアップデート後、Rspecを実行しようとしてこのようなポップアップが表示された場合には、システム設定から実行を許可してあげてください。
🍎→システム設定→プライバシーとセキュリティ→ダウンロードしたアプリケーションの実行許可
上記の中にchromedriveの開発元が確認できずブロックされた旨のメッセージがありますので、そちらの「このまま開く」をクリックしてください。
こちらの記事を参考にさせていただきました
https://teshi-learn.com/2021-08/macにchormedriverを設定する(chromedriverは、開発元が未確認の/
selenium-webdriverのアップデート
調べていると gem selenium-webdriver
と gem capybara
のアップデートで解消するという記事も見かけます。私は以前はこの方法でもうまくいきましたが、今回はアプデできない状況でしたのでこちらは採用しませんでした。
アプデが可能であればこちらも参考にされると良いかと思います。https://qiita.com/jnchito/items/f994dd3ac2cdc39bff8c
公式ダウンロードページに欲しいバージョンがない
現在公式の https://chromedriver.chromium.org/downloads こちらのダウンロードサイトにはv115以降が掲載されていません。
こちらの記事を参考にさせていただきました。
https://voicetechno-jp.secure-web.jp/ChromeDriverV115orNewer.html
まとめ
エラーの内容としましてはChromeとChromeDriverのバージョン不一致ですので、そちらを解消する方法を探しました。
Gemはどうせアプデしていくのでseleniumをアプデすることで解消できれば楽ですが、Chrome自体がしょっちゅうアプデするのでChromeDriverもどのみち更新していくことが必要でしょうから、定期的にやっても良いかもしれません。
コメント