python で Selenium を使って、ある要素が出現するまで待機する時の話。
↓ こちらのように、sleepを使うと記述は楽だが、無駄に10秒待ったり、10秒経っても読み込めなかったりする。
import time
time.sleep(10)
なので、sleepは使わずに、
↓ こちらのように、classname の要素が見つかるまで待つ、10秒経ったらタイムアウトにする、という wait を使うことにする。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get(URL)
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located*1
)
4. 要素を見つける — Selenium Python Bindings 2 ドキュメント
*1:By.CLASS_NAME, "classname"