🌏

Codeception で任意のバージョンの Chrome を起動したい

に公開

Chrome や ChromeDriver のバージョンが上がって、Codeception のE2Eテストが突然エラーになったりした時、過去の Chrome や ChromeDriver のバージョンを使いたい場合があります。

そんな時は @puppeteer/browsers を使って、 Chrome for Testing から過去のバージョンの Chrome をダウンロードしましょう。

設定方法

プロジェクトのディレクトリで以下のコマンドを実行します

@puppeteer/browsers をインストール

npm install @puppeteer/browsers

任意のバージョンの Chrome と ChromeDriver をインストール

## 安定板の chrome をインストール
npx @puppeteer/browsers install chrome@stable

## バージョン指定で chrome をインストール
npx @puppeteer/browsers install chrome@116.0.5793.0

## Canary チャンネル(開発版)の ChromeDriver をインストール
npx @puppeteer/browsers install chromedriver@canary

# バージョン指定で ChromeDriver をインストール
npx @puppeteer/browsers install chromedriver@116.0.5793.0

インストールした際に、インストール先のパスが表示されるのでメモしておいてください

acceptance.suite.yml ファイルに設定

Codeception の acceptance.suite.yml ファイルに設定します。

actor: AcceptanceTester
modules:
    enabled:
        - WebDriver:
            url: 'http://localhost'
            browser: 'chrome'
            capabilities:
                goog:chromeOptions:
                    binary: '<インストールしたChromeのパス>'
                    prefs:
                        download.default_directory: '%PWD%/codeception/_support/_downloads'
                    args: ['--headless', '--disable-gpu']

実行方法

インストールした ChromeDriver を起動します。 --verbose をつけると通信内容を出力しますのでお好みで。

./<インストールしたChromeDriverのパス>/chromedriver --url-base=/wd/hub --port=9515 --verbose

あとは通常通り codeception を実行します

vendor/bin/codecept  run -d acceptance
GitHubで編集を提案

Discussion