【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*1 )

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

*1:By.CLASS_NAME, "classname"