プロキシ追加後に発生する Puppeteer の waitForSelector タイムアウト
要素の待機をプロキシ接続の失敗とみなす前に、ナビゲーション応答と配信されたドキュメントを確認します。
waitForSelector のタイムアウトは、期待した要素が待機条件を満たさなかったことを意味します。要素が現れる前にプロキシを追加しても、プロキシの TCP 接続がタイムアウトしたことは証明できません。
- ナビゲーションの証拠を残す。 最終的な URL、メイン応答のステータスと関連する失敗リクエストをセレクターの待機前に記録します。Puppeteer では HTTP エラー応答が必ずしもナビゲーション例外として送出されるわけではありません。
- 配信されたドキュメントを調べる。 そのタイトルや注意深くマスクしたスクリーンショットから、ログインのチャレンジ、アクセス拒否ページ、あるいは別の地域向けページが判明することがあります。目的のページでアプリケーションのリクエストが失敗している可能性もあります。セレクターとフレームも確認してください。
- チャレンジはその発生源で対処する。 プロキシのチャレンジには、ナビゲーション前にサポートされているプロキシ認証を設定します。接続先のチャレンジはアプリケーションの認可されたワークフローに属し、独自の認証情報を使います。
これにより、要素の待機がコードの報告する最初の例外になる前に存在していた有用な証拠が明らかになることがよくあります。ウェブサイトのパスワードをプロキシに渡しても、その以前のドキュメントは修正できません。
失敗した操作を特定してからタイマーを選びます。ナビゲーション、ネットワーク設定、要素の待機では制限が異なります。本当に遅い UI ならセレクターの待機を長くする理由になりますが、エラーページはやはり誤ったドキュメントのままです。
比較している間はブラウザーセッションと経路を一定に保ちます。プロキシ、セレクター、ブラウザーの状態をすべて一度に変えると、どの条件が重要だったのかが分からなくなります。