How to create an Explicit wait in Selenium Python?
- Explicit wait as defined would be the combination of WebDriverWait and Expected conditions.
- Let’s implement this on https://www.w3wiki.org/and wait 10 seconds before locating an element.
# import webdriver
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
# create webdriver object
driver = webdriver.Firefox()
# get w3wiki.org
driver.get("https://www.w3wiki.org/")
# get element after explicitly waiting for 10 seconds
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.link_text, "Courses"))
)
# click the element
element.click()
Output
First it opens https://www.w3wiki.org/ and then finds Courses link.
It clicks on courses links and is redirected to https://www.w3wiki.org/.
Explicit waits in Selenium Python
Selenium Python is one of the great tools for testing automation. These days most web apps are using AJAX techniques. When the browser loads a page, the elements within that page may load at different time intervals.
Table of Content
- What is Explicit Waits?
- How to create an Explicit wait in Selenium Python?
- Conclusion
- Frequently Asked Questions in Explicit waits in Selenium Python
This makes locating elements difficult, if an element is not yet present in the DOM, a locate function will raise an ElementNotVisibleException exception. Using waits, we can solve this issue.
- Waiting provides some slack between actions performed – mostly locating an element or any other operation with the element.
- Selenium Webdriver provides two types of waits – implicit & explicit. This article revolves around Explicit wait in Selenium Python.
Contact Us