What is Selenium Waits?
Dynamic Web Applications often load asynchronously making it difficult to predict whether a particular element we want to interact with is available for interaction or not.
- Selenium Waits is a mechanism that helps to address this issue, it instructs the automation script to wait for a certain condition to be met before we move on to the next stage.
- Without proper synchronization, tests may fail due to the element not being available or ready when we are trying to interact with it.
Why are Selenium Waits Important?
Selenium waits are important in automating web applications to handle the timing issues and ensure that our testing scripts are interacting with the element accurately. They help in addressing the delay in element availability, page loading and rendering making out testing script more reliable.
Example:
Here when we click on the create image button it takes some time to load the image, here if we use selenium click on the create image button and locate the image it will not be able to locate the image because the automation script will try to locate the image immediately and when it isn’t available for interaction.
Python3
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() url = "http://127.0.0.1:5500/index.html" driver.get(url) try : button = driver.find_element(By. ID , "createImage" ) button.click() img = driver.find_element(By.CSS_SELECTOR, "#output img" ) except : print ( "Not found" ) else : print ( "found" ) |
Output:
Explanation:
- Here we have used find_element() method along with ID locating strategy to find the create image button which has the Id of “createImage” and click on it.
- Then we have used the find_element() method along with CSS_SLECTOR locating strategy to locate the image tag which is inside a div having an id of output.
- But the scripts fail to locate the image because the image was not available for interaction that moments, in this the image takes few seconds after the button click to load so it was not available for interaction that moment.
- So the output was Not Found
To know more about Locating Strategies in Selenium and How to locate an element on a webpage refer Selenium Locating Strategies
So, in order to synchronize our automation script with the loading time of the element we’ll have to use Selenium Waits.
Selenium Waits
Selenium is one of the most popular and powerful tools when it comes to automating web applications. Selenium is widely used for automating user interaction on a web page. One of the crucial aspects of automating web applications in Selenium is handling Dynamic Web applications and ensuring proper synchronization between the testing scripts and loading time of the website, sometimes the element we want to interact with is not available for interaction which may lead to faulty test cases.
Contact Us