The WebdriverWait is also known as an explicit wait. The explicit wait is used to tell the Web Driver to wait for certain conditions or the maximum time limit before throwing an Exception.
We can reuse the WebdriverWait object once we create it. The explicitwait will be applicable for only one line, we have to use it with ExpectedConditions class.
ExplicitWait does not have any effect on findElement and findElements.ExplicitWait also called as WebdriverWait.
WebDriverWait by default calls the ExpectedCondition every 500 milliseconds until it returns successfully.
Syntax : wait=new WebDriverWait( driver, timeoutInSeconds);
Explicit waits are a good way to organize a test script and provide more flexibility, by allowing us to design out tests in a way, where we can wait for some predefined or custom conditions and then carry on with what we want.
Below code waits for the element to become clickable
driver = webdriver.Chrome(executable_path=r'D:PATHchromedriver.exe');
wait = new WebDriverWait(driver, 30 /*timeout in seconds*/);
Below are few Expected Conditions :
- title_is : An expectation for checking the title of a page. the title is the expected title, which must be an exact match returns True if the title matches, false otherwise.
- title_contains : An expectation for checking that the title contains a case-sensitive substring. the title is the fragment of title expected returns True when the title matches, False otherwise
- presence_of_element_located : An expectation for checking that an element is present on the DOM of a page. This does not necessarily mean that the element is visible. locator - used to find the element returns the WebElement once it is located
- visibility_of_element_located : An expectation for checking that all elements are present in the DOM of a page and visible. Visibility means that the elements are not only displayed but also has a height and width that is greater than 0. locator - used to find the elements returns the list of WebElements once they are located and visible
- visibility_of : An expectation for checking that an element, known to be present in the DOM of a page, is visible. Visibility means that the element is not only displayed but also has a height and width that is greater than 0. element is the WebElement returns the (same) WebElement once it is visible
- presence_of_all_elements_located : An expectation for checking that there is at least one element present on a web page. locator is used to find the element returns the list of WebElements once they are located
- text_to_be_present_in_element : An expectation for checking if the given text is present in the specified element. locator, text
- text_to_be_present_in_element_value : An expectation for checking if the given text is present in the element’s locator, text
- frame_to_be_available_and_switch_to_it : An expectation for checking whether the given frame is available to switch to. If the frame is available it switches the given driver to the specific
- invisibility_of_element_located : An Expectation for checking that an element is either invisible or not present in the DOM. locator used to find the element
- element_to_be_clickable : An Expectation for checking an element is visible and enabled such that you can click it.
- staleness_of : Wait until an element is no longer attached to the DOM. element is the element to wait for. returns False if the element is still attached to the DOM, true otherwise.
- element_to_be_selected : An expectation for checking the selection is selected. element is WebElement object
- element_located_to_be_selected : An expectation for the element to be located is selected. locator is a tuple of (by, path)
- element_selection_state_to_be : An expectation for checking if the given element is selected. element is WebElement object is_selected is a Boolean
- element_located_selection_state_to_be : An expectation to locate an element and check if the selection state specified is in that state. locator is a tuple of (by, path) is_selected is a boolean
- new_window_is_opened : An expectation that a new window will be opened and have the number of windows handles increase
- number_of_windows_to_be : An expectation for the number of windows to be a certain value.