【Python】Selenium では Sleep は使わずに Wait する

pythonSelenium を使って、ある要素が出現するまで待機する時の話。

↓ こちらのように、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((By.CLASS_NAME, "classname"))
)

4. 要素を見つける — Selenium Python Bindings 2 ドキュメント