ChromeのアップデートのためにChrome本体とChromeDriverの相性問題が出るのが嫌になったのでFerrumを使うことにしました。Macのローカルだとバイナリを探してくれずエラーになったので対処方法を記録しておきます。

エラーメッセージ

pryFerrum::Browser.newと以下のようなエラーになる。

$ browser = Ferrum::Browser.new
Errno::ENOENT: No such file or directory - /usr/bin/google-chrome
from /Users/ironsand/.rbenv/versions/2.7.3/lib/ruby/gems/2.7.0/gems/ferrum-0.9/lib/ferrum/browser/process.rb:90:in `spawn'

対処方法

Ubuntu20.04のデフォルトだと/usr/bin/google-chromeにインストールされるようなので、そこにsymlinkを作っておくことにします。

$ sudo ln -s /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome /usr/bin/google-chrome
ln: failed to create symbolic link '/usr/bin/google-chrome': Operation not permitted

試してみたらOperation not permittedのエラーになってしまいました。そういえば最近のMacOSは/usr/binはOSが使うのでユーザーが何かを追加するのは非推奨なのを思い出したので/usr/local/binの方を使うことにしました。

$ ln -s /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome /usr/local/bin/google-chrome
// パスが通ってる事を確認
$ which google-chrome
/usr/local/bin/google-chrome

最後にFerrum::Browser.newで起動できることを確認して終了。

参考

macos - Creating a symbolic link in /bin is not working - Ask Different