Wait Times - Implicit vs Explicit Waits
Why waits matter
Dynamic pages load elements later.
If you try to locate elements too early, you get:
NoSuchElementExceptionNoSuchElementExceptionElementNotInteractableExceptionElementNotInteractableException
Implicit wait
implicit_wait.py
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5) # secondsimplicit_wait.py
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5) # secondsIt applies to element lookups globally.
Explicit wait (recommended)
explicit_wait.py
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()
try:
driver.get("https://example.com")
h1 = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.TAG_NAME, "h1"))
)
print(h1.text)
finally:
driver.quit()explicit_wait.py
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()
try:
driver.get("https://example.com")
h1 = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.TAG_NAME, "h1"))
)
print(h1.text)
finally:
driver.quit()Tip
Prefer explicit waits for specific elements.
If this helped you, consider buying me a coffee ☕
Buy me a coffeeWas this page helpful?
Let us know how we did
