Cypress で --browser が見つからない場合は、「ブラウザ定義名」でブラウザが起動できるようにすればいい

どういう状況か

Cypress をブラウザ指定で実行するとき、「ブラウザが見つからない」というエラーが出るときがあります。もちろん、当該ブラウザは正しくインストールされている場合です。

例えば以下のようなエラーメッセージです。

$ cypress run --browser chrome
Can't run because you've entered an invalid browser name.

Browser: 'chrome' was not found on your system or is not supported by Cypress.

Cypress supports the following browsers:
- chrome
- chromium
- edge
- electron
- firefox

You can also use a custom browser: https://on.cypress.io/customize-browsers

どうすればいいか

エラーが出る理由は、エラーメッセージにある、chromeedgefirefox という名前でコマンドを実行した場合にコマンドが見つからないからです*1

したがって、たとえば $ cypress run --browser chrome を正しく実行させるためには $ chrome というコマンドにより Chrome が起動すればいいわけです。

解決方法はいくつかあります。

1. シンボリックリンクを作成する

公式ドキュメントにもあるとおり、シンボリックリンクを作成します。

上記の例の場合ですと例えば以下のようにシンボリックリンクを張って chrome というコマンドを実行可能にすればいいです。

ここで、/opt/google/chrome/chrome は Chrome の実体がある場所です。/usr/local/bin/chrome は PATH が通っている場所です*2

$ sudo ln -s /opt/google/chrome/chrome /usr/local/bin/chrome

これで、$ cypress run --browser chrome が正しく実行できるはずです。

2. 実体がある場所に PATH を通す

上記の例の場合において、/opt/google/chrome/chrome に PATH を通すという方法でも OK です。

参考

github.com

*1:$ which chrome を実行すると chrome not found が返ってくる状態です

*2:PATH が通っているならどこでもいい

Powered by はてなブログ