SeleniumDriverのエラー(unable to connect to chromedriver 127.0.0.1:9515)

新年早々、seleniumでscrapeしようとしたら、タイトルのエラーとなった。

一般的な解決方法は

ググると結構見つかって、chromedriver-helper をuninstallして homebrew で chromedriver入れろとのこと。
 
現時点ではchromedriverはhomebrewでは扱っていないため(homebrew caskにはある)以下からdownloadしてpathを通した場所に置いてやる。
Downloads - ChromeDriver - WebDriver for Chrome
 
しかし、chromedriver単体では動作するが、ruby経由では動作しない。

原因

chromedriver-helper の古いバージョン(1.2.0)はchromedriver を同梱していたようで、 rbenv環境だとshims以下にwrapperファイルが作られていた。
これがgemのuninstall時に消えていなかった。

$ which chromedriver
/Users/rochefort/.anyenv/envs/rbenv/shims/chromedriver

とりあえず、こいつを消して解決。
 

shims以下のファイルとは?

rbenv側の問題にも思えるが、そもそもshimsとは何だろう?
ググってみると以下が詳しい。
rbenvコードリーディング

shimファイルとは各バージョン差異を埋めるためのファイルであり、rbenvの場合は、ruby・irb・gemなどのファイル名で作成されるシェルスクリプトになります。

なるほど、rbenv内のrubyから該当の実行ファイルが消えたかどうかを管理するのが面倒なので、削除はしていないのかも。