Wait until a specific element is present in Selenium Python
Hello programmers, in this tutorial we will understand about ‘waits‘ using selenium Python.
Selenium is used for user interactions with web browsers. It has a wide range of tools that helps in the automation of browsers.
Here we will see a demo on how to wait for a specific element present in the website using selenium Python.
Installation of selenium
Type the below command in your command prompt to download the module.
python -m pip install -U selenium
Waiting for an element in selenium Python
When a page is loaded in the browser, not all the elements in the website load at the same time. They load at different time intervals. This makes it difficult for finding a particular element at the start using an automation tool. The exception ElementNotVisibleException will be raised if the element is not found by the automation tool.
Selenium Webdriver has two types of waits:
- Implicit wait
- Explicit wait
An explicit wait makes the webdriver wait until a certain condition occurs and an implicit wait makes the webdriver wait for a certain amount of time for a particular element that is not immediately available to locate.
Usage of wait methods in selenium Python
We need to install the chrome driver and then copy the file location of the executable file to the system path.
Below given is the illustration for using an implicit wait in a website using selenium Python.
#Importing Necessary Libraries from selenium import webdriver import time #implicit wait function def seleniumImplicitWait(): #creating a webdriver object driver = webdriver.Chrome(executable_path='C:/path/to/dir/chromedriver.exe') driver.maximize_window() #maximize window size driver.get("https://www.codespeedy.com/") #opening the url driver.implicitly_wait(15) #wait for 15 seconds for finding the element ele = driver.find_element_by_link_text("Programming Blog") #finding the element time.sleep(10) ele.click() #clicking on the element time.sleep(20) if __name__ == "__main__": seleniumImplicitWait() #call the function
Output
The chrome browser is triggered and the following URL is opened. The program waits for 15 seconds and then opens the ‘Programming Blog’ page.
Explanation
The ‘seleniumImplicitWait()’ function is triggered. Inside the function, a driver object is created for the chrome browser. The website is opened using the ‘.get()’ method. Next, the ‘.implicit_wait()’ method is called for 15 seconds to find the required element. After it is found, the following element is clicked to give the corresponding result. For this task, the selenium module had been imported.
Below given is the illustration for using an explicit wait in a website using selenium Python.
#Importing Necessary Libraries 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 import time #explicit wait function def seleniumExplicitWait(): #creating a webdriver object driver = webdriver.Chrome(executable_path='C:/path/to/dir/chromedriver.exe') driver.maximize_window() #maximize window size driver.get("https://www.codespeedy.com/") #opening the url ele = WebDriverWait(driver, 10).until( #using explicit wait for 10 seconds EC.presence_of_element_located((By.LINK_TEXT, "Programming Blog")) #finding the element ) ele.click() #clicking on the element time.sleep(20) if __name__ == "__main__": seleniumExplicitWait() #call the function
Output
The chrome browser is triggered and the following URL is opened. The program waits for 10 seconds and then opens the ‘Programming Blog’ page.
Explanation
The ‘seleniumExplicitWait()’ function is triggered. A driver object is created in the chrome browser. The website is opened using the ‘.get()’ method. Next, the ‘WebDriverWait()’ method is called for 10 seconds until the element is found on the webpage. After it is found, the following element is clicked to give the corresponding result. For this task, the selenium module had been imported.
For further details Click a particular element in Selenium Python
Leave a Reply