Browser Run は、リクエストの各部分にかけられる時間を、独立した複数のタイマーで管理します。いずれかのタイマーが上限を超えると、リクエストはタイムアウトエラーを返します。
各タイマーは、レンダリングライフサイクルの特定の部分 — ページ読み込み、セレクター読み込み、アクション — を制御します。
| タイマー | 対象 | デフォルト | 最大 |
|---|---|---|---|
goToOptions.timeout |
タイムアウトするまでにページ読み込みを待つ時間です。 | 30 s | 60 s |
goToOptions.waitUntil |
ページ読み込み完了とみなす条件です。詳細は waitUntil のオプション を参照してください。 |
domcontentloaded |
— |
waitForSelector |
特定の要素(任意の CSS セレクター)がページに現れるまで待つ時間です。 | null | 60 s |
waitForTimeout |
ページ読み込み後、アクションに進むまでに追加で待つ時間です。 | null | 60 s |
actionTimeout |
ページ読み込み後、アクション自体(スクリーンショット、PDF、スクレイプなど)の完了を待つ時間です。 | null | 5 min |
PDFOptions.timeout |
actionTimeout と同じですが、/pdf エンドポイント にだけ適用されます。 |
30 s | 5 min |
goToOptions.waitUntil パラメーターは、ブラウザーがページナビゲーション完了とみなすタイミングを制御します。初期読み込みのあとにコンテンツを動的に描画する、JavaScript が多いページでは重要です。
| 値 | 動作 |
|---|---|
load |
画像やスタイルシートを含むすべてのリソースの load イベントを待ちます |
domcontentloaded |
DOM コンテンツの読み込み完了を待ちます。load イベントより先に発火します(デフォルト) |
networkidle0 |
少なくとも 500 ms のあいだネットワーク接続がない状態になるまで待ちます |
networkidle2 |
少なくとも 500 ms のあいだネットワーク接続が 2 本以下になるまで待ちます |
コンテンツの描画に JavaScript を使うページでは、抽出前にページが完全に描画されるよう networkidle0 または networkidle2 を使います。
複数のタイマーを設定できます。どれか 1 つが完了すれば、リクエストは実行されます。
期待どおりの出力が得られない場合は、次を試してください。
goToOptions.timeoutを増やします(最大 60 s)。- 特定の要素を待つ場合は
waitForSelectorを使います。それ以外は、動的コンテンツの読み込み完了を待つためgoToOptions.waitUntilをnetworkidle2に設定します。 422が返る場合は、アクション自体(スクリーンショット撮影や HTML コンテンツの抽出など)に時間がかかっていることがあります。その場合はactionTimeoutを増やしてください。