Playwrightは、Node.js 20以上が入った環境で npm init playwright@latest を実行すればインストールできます。テストランナー本体と、Chromium・Firefox・WebKitのブラウザ本体が1回のコマンドで入ります。この記事は2026年10月15日時点の最新版1.64.1で手順を実行し直し、インストールできないときに実際に出るエラー文と対処を、ブラウザ未取得・ネットワーク・Linuxの依存不足・Windows・Pythonの順にまとめたものです。
まとめ:Playwrightのインストールとできない時の切り分け
- Node.js版は
npm init playwright@latestで雛形とブラウザがまとめて入る。既存プロジェクトにはnpm i -D @playwright/testとnpx playwright installで追加する。 - Node.jsの下限は20で、公式の推奨は22.x・24.x・26.xの最新版。19以下では起動時に「Playwright requires Node.js 20 or higher.」と出て止まる。
- 「Executable doesn’t exist」「Looks like Playwright was just installed or updated.」は、ブラウザ本体が無いか、パッケージとブラウザの版がずれているサイン。
npx playwright installを実行し直す。 - Linuxで依存ライブラリが足りないと、Chromiumは「Target page, context or browser has been closed」と「error while loading shared libraries」で落ちる。
npx playwright install-depsで直る。 - ダウンロードが失敗・停止する場合は
HTTPS_PROXY・NODE_EXTRA_CA_CERTS・PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUTを設定する。 - バージョン確認はプロジェクトのフォルダ内で
npx playwright --version。プロジェクト外では別のインストールやnpmキャッシュを参照する場合があり、目的のプロジェクトの版を確認できない。 - Python版の最新はPython 3.10以上が必要。3.9では古い1.60.0がエラーなしで入る。
インストール前に確認する動作要件(Node.js・Python・OS)
公式ドキュメントの「System requirements」と、配布パッケージが実際に要求する下限(npmの engines、PyPIのRequires)は一致していません。公式が対応を保証する範囲と、パッケージが強制する最低バージョンを分けて確認します。
| 項目 | 公式docsの記載 | 実際の要件(Node.js版1.64.1/Python版1.64.0) |
|---|---|---|
| Node.js | 22.x・24.x・26.xの最新 | 20以上(engines・起動時チェック) |
| Python | 3.8以上 | 3.10以上(PyPIのrequires_python) |
| Windows | Windows 11以降・Server 2019以降・WSL | 同左 |
| macOS | 14(Sonoma)以降 | 14はWebKitが旧版で固定 |
| Linux | Debian 12・13、Ubuntu 22.04・24.04・26.04 | x86-64とarm64 |
Node.jsの下限20は、1.62.0で18から引き上げられました。リリースノートにはこの変更が書かれていません。playwright-core の起動処理には minimumMajorNodeVersion = 20 というチェックがあり、Node.js 18のままだとインストールは済んでも、テストを実行した時点で終了します。
Pythonはさらに見落としやすい要件です。公式docsは1.64.1の時点でも「Python 3.8 or higher」と書いていますが、PyPIの playwright は1.61.0(2026年6月29日公開)から requires_python >=3.10 です。macOS標準の /usr/bin/python3(3.9.6)で作った仮想環境で pip install --dry-run playwright を実行すると、「Would install … playwright-1.60.0」と表示されました。エラーは出ず、最新の1.64.0より4版古いものが入ります。docsどおりに動かない場合は、先に python -V を確認してください。
macOS 14では、同梱ブラウザの定義ファイル browsers.json でWebKitのrevisionが2251に固定されています(1.64.1の通常は2370)。ChromiumとFirefoxは最新版が入りますが、WebKitは更新されない旧ビルドです。WebKitで最新の挙動を確かめたい場合は、macOS 15以降かLinuxで実行します。
Node.jsでのインストール手順(npm init playwright)
npm init playwright@latestによる雛形・ブラウザの一括導入
新しくテスト用のフォルダを作る場合は、そのフォルダで次のコマンドを実行します。yarnなら yarn create playwright、pnpmなら pnpm create playwright が同じ処理です。
npm init playwright@latest
対話形式で、TypeScriptかJavaScriptか、テストフォルダ名(既定は tests)、GitHub Actionsのワークフローを追加するか、ブラウザをインストールするか(既定はyes)を聞かれます。macOS・Node.js 26.5.0・npm 11.17.0の環境で、ブラウザを入れない --no-browsers を付けて実行すると10秒で終わり、次のファイルが作られました。
.gitignore # node_modules/ や /test-results/ などを除外
package.json # devDependencies に @playwright/test ^1.64.1 と @types/node
package-lock.json
playwright.config.ts # テスト設定
tests/example.spec.ts # サンプルテスト
同じコマンドをもう一度実行しても、既存のテストファイルは上書きされません。ブラウザを入れずに雛形だけ作った場合は、後から npx playwright install で追加します。
既存プロジェクトへのPlaywright Testの追加
すでに package.json があるプロジェクトでは、テストランナー入りのパッケージを開発依存として入れ、ブラウザを別途取得します。
npm install -D @playwright/test
npx playwright install
古い記事でよく見かける npm install playwright でも、1.64.1ではブラウザ操作APIに加えてテストランナーの実装が入り、playwright/test から test と expect を読み込めます。ただし公式の導入手順と npm init playwright の雛形は @playwright/test を使うので、E2Eテストが目的ならこちらを入れ、スクレイピングなどブラウザ操作だけが必要な場合は playwright で足ります。
インストール後の動作確認
初期化コマンドでサンプルテストとHTMLレポーター設定を生成した場合は、次の3つで動作を確かめます。既存プロジェクトにパッケージだけを追加した場合は、先にテストファイルを用意してください。
npx playwright test # 設定した全ブラウザでサンプルを実行
npx playwright test --ui # UIモードで1件ずつ実行
npx playwright show-report # 直前の結果をブラウザで表示
ここで「Executable doesn’t exist」が出たら、ブラウザ本体が入っていません。後述の対処に進んでください。test・codegen・show-traceなどCLI全体のオプションは、Playwright CLIコマンド一覧にまとめています。
ブラウザ本体のインストールと保存先
npx playwright installで入るブラウザと容量
1.64.1で npx playwright install --dry-run を実行すると、既定で入るのは次の5つでした。--dry-run はダウンロードせずに、保存先とダウンロードURLだけを表示するオプションです。容量は、macOS(Intel)で全部を入れたときのダウンロードサイズと、展開後のフォルダの大きさです。
| 名前 | ブラウザの版 | revision | ダウンロード | 展開後 |
|---|---|---|---|---|
| Chrome for Testing(chromium) | 156.0.8078.4 | 1248 | 195.8MiB | 390MB |
| Chrome Headless Shell | 156.0.8078.4 | 1248 | 104.1MiB | 216MB |
| Firefox | 157.0 | 1555 | 113.3MiB | 315MB |
| WebKit | 27.2 | 2370 | 85.1MiB | 321MB |
| FFmpeg | – | 1013 | 1.5MiB | 3.4MB |
全部で約1.2GBになり、ダウンロードと展開に65秒かかりました。FFmpegは動画の録画に使う部品で、どのブラウザを指定しても一緒に入ります。CIでは必要なものだけを指定します。
npx playwright install chromium # ChromiumとHeadless Shell
npx playwright install --with-deps chromium # Linuxの依存ライブラリも一緒に
npx playwright install --only-shell chromium # Headless ShellとFFmpegだけ
npx playwright install msedge # OS標準の場所にEdgeを導入(既存版を上書き)
取得対象をChromiumのHeadless ShellとFFmpegだけに絞る場合は、--only-shell chromium と指定します。ブラウザ名を付けずに npx playwright install --only-shell とすると、1.64.1の --dry-run ではHeadless ShellにFirefoxとWebKitも加わって表示されました。--only-shell を使えるのは、設定で channel を指定せず、ヘッドレスだけで実行する場合です。
1.64.0では、設定ファイルのプロジェクトに default: false を付けると、--project で指定したときだけ実行される仕組みが入りました(1.64.0のリリースノート)。普段はChromiumだけで回してFirefoxとWebKitは必要なときに走らせる構成なら、日常の環境にはChromiumだけを入れておけば足ります。
ブラウザの保存先とキャッシュの削除・アンインストール
ブラウザ本体はプロジェクトの node_modules ではなく、OSごとのキャッシュフォルダに入ります。
- Windows:
%USERPROFILE%\AppData\Local\ms-playwright - macOS:
~/Library/Caches/ms-playwright - Linux:
~/.cache/ms-playwright
キャッシュを消すときは、フォルダを手で削除するよりコマンドを使うほうが安全です。npx playwright install --list は、入っているブラウザのフォルダと、それを使っているプロジェクトの場所(References)を一覧にします。npx playwright uninstall は現在のインストールの利用登録を解除し、ほかから使われていないブラウザとFFmpegだけを削除します。
npx playwright install --list # ブラウザと利用中のプロジェクトの一覧
npx playwright uninstall # 利用登録を解除し、未使用ブラウザを削除
npx playwright uninstall --all # すべてのPlaywrightのブラウザを削除
npm uninstall @playwright/test # パッケージ自体を外す
uninstall のヘルプにあるとおり、正規版のChromeやEdge(branded channels)は削除の対象外です。また、バージョンを上げると、どこからも使われなくなった古いブラウザは自動で削除されます。複数の版を残したい場合は、--no-remove を付けるか、環境変数 PLAYWRIGHT_SKIP_BROWSER_GC=1 を設定します。
Playwrightがインストールできない時の原因と対処
ブラウザ未取得・版不一致のエラー:「Executable doesn’t exist」「Looks like Playwright was just installed or updated」
ブラウザの保存先を空のフォルダに向けて chromium.launch() を実行すると、1.64.1では次のように表示されました。
browserType.launch: Executable doesn't exist at .../chromium_headless_shell-1248/...
Looks like Playwright was just installed or updated.
Please run the following command to download new browsers:
npx playwright install
パスの 1248 は、そのパッケージの版が要求するブラウザのrevisionです。この番号のフォルダがキャッシュに無いと、手元の古いブラウザで代わりに動くことはなく、起動に失敗します。原因はたいてい次のどれかです。
npm updateなどでパッケージの版だけを上げ、npx playwright installを実行していない- CIでキャッシュしたブラウザフォルダと、lockファイルに記録された版がずれている
- インストール時と実行時で環境変数
PLAYWRIGHT_BROWSERS_PATHの値が違う
npm init playwrightのEUNSUPPORTEDPROTOCOLエラーと対処
既存のプロジェクトで npm init playwright@latest を実行すると、依存パッケージを入れる段階で次のエラーになることがあります。
npm error code EUNSUPPORTEDPROTOCOL
npm error Unsupported URL Type "link:": link:./sub
npmが古いせいだと説明されることがありますが、検証に使ったnpm 11.17.0でも、2026年10月時点の最新版12.2.0でも、package.json に "link:./sub" 形式の依存を書くと同じエラーが出ました。link: はpnpmやyarnの書き方で、npmは読めません。pnpmで管理しているプロジェクトなら pnpm create playwright、yarnなら yarn create playwright のように、そのプロジェクトのパッケージマネージャで実行してください。
ダウンロードの停止・失敗への対処(プロキシ・社内証明書・タイムアウト)
ブラウザ本体は cdn.playwright.dev から取得します。1.64.1の --dry-run では、Firefox・WebKit・FFmpegには playwright.download.prss.microsoft.com などへのフォールバックが表示されましたが、Chrome for TestingとHeadless Shellにはありませんでした。社内ネットワークでは、少なくとも cdn.playwright.dev を通信許可リストに入れるか、プロキシを指定します。設定方法は公式docsのBrowsersページにあります。
HTTPS_PROXY=https://192.0.2.1 npx playwright install
# 社内CAで「self signed certificate in certificate chain」が出る場合
export NODE_EXTRA_CA_CERTS="/path/to/cert.pem"
# 社内ミラーから取得する場合
PLAYWRIGHT_DOWNLOAD_HOST=http://192.0.2.1 npx playwright install
# 回線が遅く途中で止まる場合(ミリ秒)
PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT=120000 npx playwright install
PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT は名前に反して接続のタイムアウトではなく、データが届かない状態を何ミリ秒まで待つかの設定で、既定は30秒です。CIのログが進捗バーで埋まって止まっているように見える場合は、PLAYWRIGHT_DOWNLOAD_NO_PROGRESS=1 を付けると、取得元と保存先だけが1行ずつ出ます。
Windowsのコマンドプロンプトでは set HTTPS_PROXY=...、PowerShellでは $Env:HTTPS_PROXY="..." で設定してから実行します。Linuxでプロキシを通して依存ライブラリを入れる場合は、sudo HTTPS_PROXY=... npx playwright install-deps のようにroot権限側で環境変数を渡してください。
ブラウザ本体は入ったのにLinuxで起動しない場合は、原因の一つとしてOS側の共有ライブラリ不足を確認します。Debian 12のコンテナ(python:3.12-slim-bookworm)にPlaywright 1.64.0を入れ、依存ライブラリを入れずに起動すると、ブラウザによってエラーの出方が違いました。
| ブラウザ | 表示されたエラー |
|---|---|
| Firefox | Host system is missing dependencies to run browsers. |
| Chromium | Target page, context or browser has been closed |
Firefoxは足りないライブラリの一覧と install-deps の案内を枠付きで出します。Chromiumは案内を出さず、ブラウザのログに「error while loading shared libraries: libglib-2.0.so.0: cannot open shared object file」と終了コード127が残るだけです。1.64.1のソースでは、Chromiumの依存チェックは chrome-linux というフォルダを調べますが、Chrome for Testingの実際のフォルダは chrome-linux64 と chrome-headless-shell-linux64 でした。Chromiumで「browser has been closed」が出たら、エラーの中の「shared libraries」の行を探し、あれば依存不足と判断して構いません。
sudo apt-get update # 先にパッケージ一覧を更新
npx playwright install-deps --dry-run # 足りない依存の確認だけ
npx playwright install-deps # 依存ライブラリを入れる(sudoを求められる)
npx playwright install --with-deps chromium # ブラウザと依存を同時に
install-deps --dry-run は、apt-get update をまだ実行していないコンテナでは「E: Unable to locate package libasound2」などを並べて終了コード1で終わりました。更新後に実行すると「Missing system dependencies (104)」と不足パッケージが表示されます。install-deps 本体は自分でパッケージ一覧を更新するため、実行後はChromium 156.0.8078.4が起動しました。
対応していないディストリビューションでは「BEWARE: your OS is not officially supported by Playwright; downloading fallback build」と警告が出て、近いUbuntu向けのビルドで動かそうとします。Ubuntu 26.04は1.61で正式対応しました。一方、Debian 11は1.62、Ubuntu 20.04は1.63で対象外になっています。古いOSを使い続ける場合は、Playwrightの版を固定するか、後述のDockerイメージを使います。
Windowsのnpx実行エラーとplaywrightコマンド未検出への対処
WindowsのPowerShellで npx を実行したときに「このシステムではスクリプトの実行が無効になっている」と出て止まる場合、原因はPlaywrightではなくPowerShellの実行ポリシーです。実行ポリシーが未設定のWindowsクライアントでは Restricted が適用されます。npmは npx.ps1 と npx.cmd の両方を同梱しており、PowerShellは .ps1 を実行しようとして拒否されます。
npx.cmd playwright install # .cmd版を明示して実行
# npx.cmdで実行できれば以下は不要。PowerShellスクリプトを許可する場合の代替策
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned # CurrentUserに継続して適用
組織のグループポリシーで実行ポリシーが固定されている場合、2行目は効きません。コマンドプロンプトかWSLで作業してください。
「command not found: playwright」は、npx を付けずに playwright だけを実行した場合に出ます。Node.js版のコマンドはプロジェクトの node_modules/.bin に入るので、npx playwright ... の形で実行します。Python版で同じエラーが出る場合は、pipのscriptsフォルダにPATHが通っていません。python -m playwright install のようにモジュールとして呼び出せば動きます。
Pythonの「ModuleNotFoundError: No module named ‘playwright’」への対処
このエラーは、実行中のPythonがPlaywrightモジュールを見つけられないときに出ます。未インストールや、インストール先と実行環境の不一致を確認します。macOSでは、/usr/bin/python3 とHomebrewやuvのPythonが同時に入っていることがよくあります。実行に使うPythonでそのまま入れれば、取り違えは起きません。
python -m pip install pytest-playwright # 実行するpythonで入れる
python -m playwright install # ブラウザも同じpythonから
python -c "import playwright, sys; print(sys.executable)"
仮想環境を使っている場合は、有効化したシェルで実行しているかも確かめてください。VS CodeやPyCharmでは、エディタが選んでいるインタープリターがターミナルのものと違うことがあります。
オフライン環境とDockerでのインストール
オフライン環境へのブラウザの持ち込み条件と手順
インターネットに出られないマシンには、OSの種類・バージョン、CPUアーキテクチャ、Playwrightの版をそろえたオンライン環境でブラウザを取得し、そのフォルダをコピーします。PlaywrightパッケージとOSの依存ライブラリも別途導入しておきます。
# オンライン側:保存先を指定して取得
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright install
# オフライン側:コピーした場所を実行時にも指定
PLAYWRIGHT_BROWSERS_PATH=$HOME/pw-browsers npx playwright test
フォルダ名の chromium-1248 などのrevisionが、オフライン側のパッケージの版と一致している必要があります。PLAYWRIGHT_BROWSERS_PATH=0 を指定するとブラウザが node_modules/playwright-core/.local-browsers に入るので、プロジェクトのフォルダごとコピーすれば持ち込めます。ダウンロードURLだけを別の手段で取得したい場合は、npx playwright install --dry-run(Pythonでは python -m playwright install --dry-run)でURLの一覧を出します。正規版のChromeとEdgeは、PLAYWRIGHT_BROWSERS_PATH を指定しても保存先が変わりません。
Dockerイメージによるブラウザ・OS依存関係の固定
Linuxの依存不足を避ける近道は、公式のDockerイメージを使うことです。イメージにはブラウザとOSの依存ライブラリが入っていますが、Playwrightパッケージ自体は含まれません。コンテナ内のプロジェクトで、イメージと同じ版を別途インストールします。
docker run -it --rm --ipc=host mcr.microsoft.com/playwright:v1.64.1-noble /bin/bash
公式docsの例はUbuntu 24.04ベースの -noble ですが、MCRのタグ一覧(2026年10月15日取得)には1.64.1向けに -jammy(22.04)と -resolute(26.04)もありました。イメージの版とプロジェクトの @playwright/test の版がずれていると、ブラウザの実行ファイルが見つからずに失敗するので、タグは版まで固定します。--ipc=host を付けないとChromiumがメモリ不足で落ちることがあると、公式docsに明記されています。
Python用のイメージ(mcr.microsoft.com/playwright/python)は、2026年10月15日に取得したMCRのタグ一覧では最新がv1.63.0で、PyPIで10月13日に公開された1.64.0に対応するタグはまだありませんでした。pipで最新版を入れるとイメージ内のブラウザと版がずれるので、Pythonでは pip install playwright==1.63.0 のようにイメージの版に合わせて固定します。
Pythonでのインストール手順
Pythonでは、公式が推奨するpytestプラグインを入れてからブラウザを取得します。
python -V # 3.10以上か確認
python -m pip install pytest-playwright
python -m playwright install # ブラウザを取得
# test_example.pyなどのテストファイルを作成してから実行
pytest
更新するときは python -m pip install -U pytest-playwright playwright を実行した後、Node.js版と同じようにブラウザも入れ直します。Python 3.9の環境では1.60.0で止まるため、1.61以降の機能をdocsどおりに書いても動かないことがあります。pip show playwright で入った版を確認してください。
Playwrightのバージョン確認と更新手順
プロジェクト内でのバージョン確認と実行場所による違い
npx playwright --version # 例:Version 1.64.1
npm ls @playwright/test # インストール済みの版
python -m playwright --version # Python版
注意したいのは実行する場所です。@playwright/[email protected] を入れたフォルダで npx playwright --version を実行すると「Version 1.63.0」と出ました。プロジェクトの外で npx -y playwright --version を実行すると、npmから最新版を一時的に取得して「Version 1.64.1」と表示しました。手元のプロジェクトの版を知りたいときは、必ずそのフォルダ内で実行してください。
パッケージ更新後のブラウザ再インストール
公式の更新手順は、パッケージを上げたあとにブラウザと依存ライブラリを取り直す2行です。
npm install -D @playwright/test@latest
npx playwright install --with-deps
1.63.0から1.64.1に上げると、Chromiumのrevisionは1243から1248に変わります。2行目を省くと、前述の「Executable doesn’t exist」が出ます。最新版の番号、版ごとの変更点、1.62でNode.jsの要件が上がった経緯は、Playwrightの最新バージョンとリリース履歴で追跡しています。CIでのブラウザキャッシュや版固定の設計まで含めて整えたい場合は、DevOps・CI/CD導入支援でもご相談を受けています。
よくある質問
Playwrightの読み方は?
「プレイライト」です。Microsoftが開発しているオープンソースのブラウザ自動化・E2Eテストツールで、仕組みやSeleniumとの違いはPlaywrightとはで解説しています。
Playwrightは公式サイトからダウンロードしてインストールできますか?
インストーラー形式の配布はありません。Node.jsならnpm・yarn・pnpm、Pythonならpipなどでパッケージとして入れ、ブラウザはNode.js版なら npx playwright install、Python版なら python -m playwright install で取得します。VS Codeでは、Microsoft公式の拡張機能を入れ、コマンドパレットで「Test: Install Playwright」を実行する方法もあります。
インストールにはどれくらいの容量が必要ですか?
1.64.1をmacOS(Intel)で全部入れると約1.2GBでした。Chromiumは本体とHeadless Shellで約600MBです。Chromiumだけを入れる、CIでは --only-shell chromium にする、といった方法で減らせます。Debian 12のx64コンテナで --only-shell chromium を入れたときは、展開後でHeadless Shellが273MB、FFmpegが5.1MBでした。容量はOS・CPUアーキテクチャ・ブラウザの版で変わります。
Playwright MCPを使うには別にインストールが必要ですか?
1.62からは本体にMCPサーバーが同梱されていて、npx playwright mcp で起動できます。Claude CodeやCursorへの登録手順はPlaywright MCPとは?設定・使い方を参照してください。
package.jsonにはどう書かれますか?
npm init playwright@latest を実行すると、devDependencies に "@playwright/test": "^1.64.1" が入ります。キャレット(^)付きなので、lockファイルが無い環境や npm update の実行時には1.x系の新しい版に上がります。CIとローカルで版をそろえるには、lockファイルをコミットし、npm ci でその版どおりに入れてください。