【Python】Playwrightの.wait_for_timeout() はどういう意味?わかりやすく解説!

PythonでWeb操作を自動化する際、処理の途中に「少しだけ待ちたい」ことがあります。

たとえば画面遷移後にアニメーションが終わるのを待つ、意図的に間を取るなどです。

そんなときに便利なのが、Playwrightの .wait_for_timeout() というメソッドです。

この記事では、.wait_for_timeout() の基本的な使い方から、よくある活用シーン、注意点までを初心者にもわかりやすく丁寧に解説します。

.wait_for_timeout() とは?

.wait_for_timeout() は、Playwright において 指定した時間(ミリ秒)だけ処理を一時停止する メソッドです。

たとえば .wait_for_timeout(1000) と書くと、1秒間の待機になります。

  • JavaScriptでいう setTimeout のような動作
  • Pythonでいう time.sleep() に近いが、非同期環境でも使いやすい

あくまで「時間での待機」なので、要素の表示を待つわけではありません。

特定の条件を待つには .wait_for_selector() などのメソッドを使います。

具体例①:ページ遷移後に1秒待機してから操作する

ページが動的に構築される場合、すぐに操作しようとすると失敗することがあります。

そのようなときに、間を取って安定化させるのに .wait_for_timeout() が使えます。

このコードでは、ページ遷移後に1秒待ってからボタンをクリックしています。

これによって、アニメーションやJSの初期化が完了するまでの待機を確保できます。

具体例②:スライドやアニメーションが終わるのを待つ

サイトによっては、ページ読み込み後に画像スライダーやモーダルなどが動きます。

その途中で操作するとエラーになりやすいため、手動で少し待つようにすると安定します。

このように処理の合間に .wait_for_timeout() を挟むことで、スクリプトのエラーを防ぐことができます。

.wait_for_timeout() を使うときの注意点

1. 単純な時間待ちは「最後の手段」

.wait_for_timeout() はシンプルで便利ですが、必ずしも推奨される方法ではありません

理由は、「本当にページが準備できたか」を確認せずに、ただ時間を消費するだけだからです。

理想的なのは

  • .wait_for_selector() で要素が現れるまで待つ
  • .is_visible() で表示状態を確認してから操作する

などの条件付きの待機です。

2. 長く待ちすぎるとテストが遅くなる

たとえば、毎回5秒ずつ待っていると全体で何十秒もかかることがあります。

できるだけ短い時間に抑える or 条件付きの待機で代替しましょう。

まとめ

今回は .wait_for_timeout() の使い方について解説しました。

  • .wait_for_timeout() は指定したミリ秒数だけ処理を停止するPlaywrightのメソッド
  • 1000なら1秒、2000なら2秒だけ何もせず待つ
  • ページ遷移後やアニメーション後に一時的に待つ用途で使われる
  • ただし、できる限り .wait_for_selector() など条件付きの待機を優先すべき

Webページによっては一瞬の間を置くだけで、動作の安定性が大きく変わります。

どうしてもタイミングが合わない場面では、.wait_for_timeout() を上手に活用しましょう。

おすすめの記事