tool
Playwright
Microsoft 製のブラウザ自動化・E2E テストフレームワーク。Chromium / Firefox / WebKit を単一の API で操作し、auto-wait と locator で壊れにくいテストを記述できる。ブラウザバイナリのインストール、ヘッドレス実行、CI(GitHub Actions)でのセットアップ、selector のタイムアウト、trace / screenshot、並列実行と flaky テストの安定化など Playwright 固有の問題を扱う。
問題一覧(6)
Playwright でブラウザが起動できない(Executable doesn't exist)
「Executable doesn't exist」は、npm パッケージとは別に管理されるブラウザバイナリが未取得なのが原因。npx playwright install で取得する。バージョン更新直後や CI のキャッシュ不整合でも起きる。
更新: 2026-06-13、タグ: install、browser、chromium
Playwright で page.goto が net::ERR_CONNECTION_REFUSED になる
テスト対象サーバーがまだ起動していない・URL やポートが違う・webServer 設定が無いと、page.goto が接続拒否で失敗する。webServer を設定して起動完了を待たせれば解消する。
更新: 2026-07-06、タグ: webserver、connection-refused、test
Playwright で要素をクリックできない(TimeoutError: locator.click)
locator.click のタイムアウトは、セレクタに一致する要素が無い・要素が actionability チェックを通らない・他要素に覆われている・iframe 内にある、の 4 系統。trace や --debug で実際の状態を確認して切り分ける。
更新: 2026-06-13、タグ: timeout、locator、click
Playwright で locator が要素を特定できない(strict mode violation)
strict mode violation は locator が 2 つ以上の要素に一致したときのエラー。getByRole で属性まで指定する、filter() で絞り込む、要素に test id を付与するのが基本の解決策。first() での回避は最終手段。
更新: 2026-08-07、タグ: locator、strict-mode、selector
Playwright のテストが「Test timeout of 30000ms exceeded」で失敗する
各テストには既定 30 秒のタイムアウトがあり、待機中のアクションやアサーションが終わらないと超過で失敗する。原因を切り分けたうえで待機方法の修正かタイムアウト値の調整で解決する。
更新: 2026-06-23、タグ: timeout、test、flaky
Playwright の webServer が起動待ちでタイムアウトしてテストが始まらない
webServer は url か port が応答するまで待ち、既定では 60 秒で打ち切る。ビルドを含む起動コマンドや、待ち先の URL が想定と違う設定が主な原因。timeout を伸ばすか、待ち条件と起動コマンドを見直す。
更新: 2026-08-03、タグ: webserver、timeout、ci