Chrome がすぐに起動しない、またはクラッシュしない

これは、特別なテストハーネス(IDE など)または継続的ビルドシステム(Jenkins など)を使用して ChromeDriver または Chrome を実行する場合によく発生します。

まず、テストで使用するのと同じ Chrome バイナリを通常のユーザー コマンド プロンプトから起動してみます(chromedriver.log ファイルをチェックして、使用されている Chrome を確認します)。特別なコマンドライン スイッチや引数を Chrome に渡す場合は、それらも必ず含めるようにしてください。Chrome が正常に起動しない場合は、再インストールなどによって Chrome のインストールを修正する必要があります。

Chrome をコマンド プロンプトから実行できる場合は、テスト環境でテストを実行したときに同じ問題が発生するかどうかを確認します(できれば、通常のユーザーのコマンド プロンプトからテストバイナリまたはテスト スクリプトを直接起動することをおすすめします)。また、WebDriver や ChromeDriver を使用せずに、テストから直接 Chrome を起動できることも確認する必要があります。たとえば Java では、ProcessBuilder API を使用して Chrome バイナリを直接起動できます。テスト環境でもテストで同じ問題が発生する場合は、問題の再現方法を記載した新しい問題を登録してください。

特殊なテスト環境でのみ問題が発生する場合は、次のようにします。

Chrome の代替インストーラを使用する。この操作を行うと、すべてのユーザーに対して Chrome がインストールされます。これにより、Selenium をバックグラウンド サービスとして実行している場合、問題が修正されることがよくあります。

起動時に Chrome がクラッシュする一般的な原因は、Linux で Chrome を root ユーザー(管理者)として実行していることです。WebDriver セッションの作成時に --no-sandbox フラグを渡すことでこの問題を回避することもできますが、このような構成はサポートされていないため推奨されません。代わりに通常のユーザーとして Chrome を実行するように環境を設定してください。

上記のいずれの方法でも問題が解決しない場合は、問題を再現する方法を記載した新しい問題を報告します。問題が特別な特別なテスト環境でのみ発生する場合は、ChromeDriver のデベロッパーが問題の調査や解決を行わない可能性があることにご注意ください。