【Python】Selenium WebDriverでページの読み込み完了まで待機する方法
Selenium WebDriverを使えば、ページが完全に読み込まれるまで待機することができます。Seleniumには「同期(synchronization)」という概念があり、これには暗黙的待機(implicit wait)と明示的待機(explicit wait)の2種類があります。ページの読み込み完了を待つ場合には、明示的待機の仕組みを利用するのが適切です。
明示的待機(explicit wait)とは
明示的待機は、特定の要素に対して設定された期待条件(expected condition)が満たされるまで待つ仕組みです。ページの読み込み完了を判定したい場合は、対象となる要素に対して presence_of_element_located という期待条件を使用します。指定した待ち時間が経過しても条件が満たされない場合には、タイムアウトエラーが発生します。
明示的待機を実装するには、WebDriverWait クラスと expected_conditions モジュールを活用します。以下の例では、ページ上のh1要素が存在するかどうかを確認し、ページの読み込みが完了したかどうかを検証しています。

コード実装例
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
driver.get("https://www.tutorialspoint.com/about/about_careers.htm")
# h1要素の出現を最大8秒間待機する
try:
w = WebDriverWait(driver, 8)
w.until(EC.presence_of_element_located((By.TAG_NAME, "h1")))
print("Page load happened")
except TimeoutException:
print("Timeout happened no page load")
driver.close()実行結果
このコードを実行すると、8秒以内にh1要素が検出された場合は「Page load happened」と出力され、ページの読み込みが正常に完了したことが確認できます。一方、待ち時間内に要素が見つからなかった場合は「Timeout happened no page load」と表示され、タイムアウトが発生したことを示します。
このように、WebDriverWaitとexpected_conditionsを組み合わせることで、ページの状態に応じた柔軟な待機処理を実現でき、テストの安定性と信頼性を高めることができます。

-
Pythonでクイックソートを実装する方法|初心者向けにサンプルコードを徹底解説
この記事では、クイックソート(QuickSort)のアルゴリズムを使って配列を並べ替えるPythonプログラムの実装方法を、初心者にもわかりやすく解説します。 問題の定義 問題: 与えられた配列を、クイックソートの考え方を利用して昇順にソートすることです。 クイックソートは「分割統治法」と呼ばれる手法に基づく高速なソートアルゴリズムです。まず配列を基準値(ピボット)を境目に2つの部分に分割し、それぞれの部分配列を再帰的にソートしていくことで、最終的に全体が整列された配列を得られます。 クイックソートの仕組み 処理の流れは以下のとおりです。 配列からピボット(基準となる要素)を選びます。こ
-
PythonとSeleniumでWhatsAppチャットボットを作る方法
はじめに この記事では、Pythonを使ってWhatsAppのチャットボットを作成する方法を解説します。TwitterやFacebook向けの一般的なチャットボットとは異なり、WhatsAppは運営ポリシーの関係上、プラットフォーム上で直接ボットを動かすことができません。 しかし、SeleniumというPythonの強力なパッケージを使えば、ブラウザの操作を自動化することでこれを実現できます。Seleniumを利用すれば、ブラウザ経由で「WhatsApp Web」を自由に操作できるのです。 必要なもの 準備が必要なのは、主に以下の3点です。 1. Selenium Seleniumはpip