Chrome for Testingの任意のバージョンをダウンロードする方法

Web開発

お疲れ様です。すぺきよです。

SeleniumでChromeを利用する際は、バージョン番号を指定するだけでダウンロードから実行までしてくれます。

しかし、そこで私は思いました。

「ネットに繋ぐことができない環境のために、任意のバージョンのChrome for Testingをあらかじめ別環境でダウンロードするにはどうすればいいのだろう」

あまり需要がなさそうですが、気になったのでダウンロード方法について調べてみました。

この記事を読むと何がわかるか

以下のことがわかります。

  • 任意のバージョンのChrome for Testingおよび、それに関するパッケージ(ChromeWebDriverやChrome Headless Shell)をダウンロードする方法がわかります。
  • 任意のバージョンと任意のプラットフォーム用のパッケージをダウンロードする方法がわかります。
  • 任意のバージョンと任意のプラットフォーム用のパッケージをダウンロードをサポートするツールを記事上に公開しています。これを使って簡単にパッケージをダウンロードすることが可能です。

調査時の筆者の環境

この記事を記載している時点の筆者の環境です

OS

macOS Ventura 13.5.2

Node.js

v18.17.1

selenium-webdriver

4.12.0

バージョンを指定してChrome for Testingをダウンロード

それでも、詳細なバージョンまで指定してダウンロードしたいという場合は、次のコマンドを利用しましょう。(参考元:https://developer.chrome.com/blog/chrome-for-testing/#how-can-i-get-chrome-for-testing-binaries)

ダウンロードしたChrome for Testingは、作業フォルダ内に保存されます。
先に任意のフォルダを作って、その中でコマンドを実行しましょう。

PC内にNode.jsがインストールされていることが前提ですので、インストールされていない場合はインストールしましょう。

npx @puppeteer/browsers install chrome@<version>

例えば、最新の安定版をダウンロードするのであれば、以下のコマンドを実行します。

npx @puppeteer/browsers install chrome@stable

stableのほか、beta(ベータ版)、dev(開発版)、canary(カナリア版)、latest(最新版:カナリア版)を指定することができます。

また、詳細なバージョン番号がわかっていて、そのバージョンをダウンロードしたい場合は以下のようにコマンドを使います。

今回は、現状公開されている最小番号である「113.0.5672.0」を対象とした場合を示します。

npx @puppeteer/browsers install chrome@113.0.5672.0

npxというコマンドは、npmでダウンロードできるパッケージを作業フォルダにインストールすることなく実行するためのコマンドです。
作業フォルダに配置されないだけで、実際にはダウンロードされています。
ダウンロードしたパッケージはユーザーのキャッシュディレクトリ内(例えばMacであれば「~/.npm/_npx/」以下)にダウンロードされています。

ダウンロードしたファイルは、作業フォルダ内のchromeフォルダ以下にバージョン番号別に配置されます。

バージョンを指定してChromeDriverをダウンロード

同様に、以下のコマンドでChromeDriverをダウンロードすることもできます。

npx @puppeteer/browsers install chromedriver@<version>

例えば、最新の安定版をダウンロードするためには、以下のコマンドを実行します。

npx @puppeteer/browsers install chromedriver@stable

こちらも、stableのほか、beta(ベータ版)、dev(開発版)、canary(カナリア版)、latest(最新版:カナリア版)を指定することができます。

また、詳細なバージョン番号がわかっていて、そのバージョンをダウンロードしたい場合は以下のようにコマンドを使います。

今回は、現状公開されている最小バージョンである「115.0.5763.0」を対象とした場合を示します。

npx @puppeteer/browsers install chromedriver@115.0.5763.0

バージョン「113.0.5672.0」以上、「115.0.5763.0」未満のChromeDriverはコマンドでダウンロードできません。

ChromeDriverのDownloadページに113向けと114向けのChromeDriverのダウンロードリンクが設置されていますので、ここからダウンロードすればいいということでしょう。

バージョンを指定してChrome Headless Shellをダウンロード

Chrome Headless Shellというパッケージも同様にダウンロードできます。

コマンドは以下の通りです。

npx @puppeteer/browsers install chrome-headless-shell@<version>

現状、まだ安定版がリリースされておらず、beta版しかありません。

beta版をダウンロードするには以下のコマンドを実行します。

npx @puppeteer/browsers install chrome-headless-shell@beta

将来安定版もリリースされれば、stableも利用可能になるでしょう。

ダウンロード可能なバージョン番号の一覧について

ダウンロード方法がわかっても、ダウンロード可能なバージョン番号がわからないと、ダウンロードしたくてもダウンロードできません。

ダウンロード可能なバージョン番号の一覧は、Chrome for Testing availabilityのJSON API endpointsにあります。

ここには、現時点で8つのJSONファイルへのリンクが設置されています。

この8つのJSONファイルのリンクのうち、known-good-versions.jsonを参照しましょう。

このjsonファイルに記載されているバージョン番号がダウンロード可能なバージョンのようです。

別プラットフォームのChrome for Testingなどをダウンロード

上記のコマンドや、パッと思いつく戦略でダウンロードできるのは、コマンドを実行した環境向けのCrome for TestingやChromeDriverだけです。

他の環境向けのCrome for TestingやChromeDriverをダウンロードするためには、Chrome for Testing availabilityのJSON API endpointsknown-good-versions-with-downloads.jsonを読み解く必要があります。

ですが、ファイルも大きいし、探すのは大変です。

ということで、以下のようなダウンロードツールを夜鍋して作ってみました。

開始ボタンをクリックすると、known-good-versions-with-downloads.jsonから情報を取得し、バージョン一覧を生成します。

バージョンを選択するとパッケージとプラットフォームが選択可能になります。

パッケージとプラットフォームを選択すると、ダウンロード可能なURLを表示します。同時にダウンロードボタンを表示して、ボタンクリックでそのままダウンロードできるようになっています。

参考文献

タイトルとURLをコピーしました