Playwright: Timeout exceeded
PlaywrightのE2Eテストでタイムアウトした場合のエラー
概要
PlaywrightでE2Eテスト実行中に、要素の待機やアクションがタイムアウトした場合に発生するエラーです。
エラーメッセージ
TimeoutError: Timeout 30000ms exceeded.
=========================== logs ===========================
waiting for locator('button[type="submit"]')
または
TimeoutError: page.waitForSelector: Timeout 30000ms exceeded.
原因
- 要素が存在しない: セレクタが間違っている
- 動的コンテンツ: 非同期でロードされる要素
- ページ遷移: ナビゲーション中の待機不足
- ネットワーク遅延: APIレスポンスが遅い
解決策
1. 適切なロケーターを使用
| |
2. 自動待機を活用
| |
3. タイムアウト設定
| |
4. ネットワークの待機
| |
5. 条件付き待機
| |
6. リトライロジック
| |
7. フレームの処理
| |
8. ダイアログの処理
| |
9. スクリーンショットで デバッグ
| |
10. 並列実行の制御
| |
よくある間違い
page.waitForTimeout()の使用(非推奨、代わりに自動待機を使用)- セレクタに CSS クラス名を使用(変更に弱い)
- ネットワークリクエストの完了を待たずに次のアクションを実行
- 動的に生成される要素のIDに依存
Playwright の他のエラー
この記事は役に立ちましたか?