「CentOS7 Ruby SeleniumWebdriver」の環境で、WEBスクレイピングをしていたら「Failed to open TCP connection to 127.0.0.1:9515」というエラーに遭遇しました。以下のエラーの内容を和訳すると「127.0.0.1:9515へのTCP接続を開けませんでした(接続が拒否されました)」ということです。

/home/ruby/.rbenv/versions/2.4.3/lib/ruby/2.4.0/net/http.rb:906:in `rescue in block in connect': Failed to open TCP connection to 127.0.0.1:9515 (Connection refused - connect(2) for "127.0.0.1" port 9515) (Errno::ECONNREFUSED)

今回は、こちらのエラーを解決出来ましたのでメモとして残します。

1.chromedriverを誤って削除した

Seleniumを実行する前にサーバーを色々と弄っていたので、その影響かな?と思い調べていたら、chromedriverがサーバー内から消えていました。誤って削除していたようです。chromedriverの存在を確認するには、以下のコマンドで確認出来ます。

findコマンドでchromedriverの存在を確認

# sudo find / -name chromedriver
find: ‘/run/user/1000/gvfs’: 許可がありません

この時に「chromedriver」が表示されないと、chromedriverが入っていないと判断出来ます。chromedriverの存在を確認出来なかった場合は、何らかの拍子で削除しているので、chromedriverを/usr/local/binに入れ直すと解決します。

2.chromedriverのパスが通っていない

chromedriverの存在は確認出来ても、パスが通っておらずSeleniumを実行出来ないケースです。

1.パスが通っているかどうか確認

# chromedriver -v
bash: chromedriver: コマンドが見つかりませんでした...

2.whichコマンドでパスを確認

$ which chromedriver
/usr/bin/which: no chromedriver in (/home/user/.rbenv/shims:/home/user/.rbenv/bin:/home/user/.rbenv/shims:/home/user/.rbenv/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/user/.local/bin:/home/user/bin:/home/user/.local/bin:/home/user/bin)

この場合、「/usr/local/bin/」ではなく「/usr/bin/」にchromedriverを入れたら動きました。

3.mvコマンドでchromedriverを移動

# mv /usr/local/bin/chromedriver /usr/local/

4.パスが通っているかどうか確認

# chromedriver -v
ChromeDriver 73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72)

3.バージョンが合っていない

GoogleChromeと、chromedriverのバージョンが合っていないと実行出来ない可能性があります。私はまだこのケースは遭遇していないですが、とりあえず手順を載せておきます。

1.以下のコマンドでGoogleChromeのバージョンを確認します。

# google-chrome-stable -version

2.GoogleChromeのバージョンと対応するChromeDriverのバージョンを、以下のURLから確認します。
https://sites.google.com/a/chromium.org/chromedriver/downloads

3.ChromeDriverのダウンロードと設定をします。バージョンやOSは、以下のコマンドをコピペせず自分の環境に合わせてください。

# sudo wget https://chromedriver.storage.googleapis.com/73.0.3683.68/chromedriver_linux64.zip
# unzip chromedriver_linux64.zip
# chmod a+x chromedriver
# mv chromedriver /usr/local/bin/

以上です。