Exceptions in Selenium
In this post, we will study the most commonly encountered exceptions in Selenium WebDriver and the root cause of these exceptions.
Content
NoSuchElementException
Reason – In case no element could be located from the locator provided.
Resolution – Check the correctness of the locators for the elements and make sure that the element is present when interacted with them.
ElementNotVisibleException
Reason – In case the element is present in the dom but is not visible.
Resolution – Make sure that the element is in the visible area when interacted with. Some common methods to achieve this are – maximizing the browser window, scrolling to the element.
NoAlertPresentException
Reason – In case we try to switch to an alert but the targetted alert is not present.
Resolution – Make sure that alert is present when it is interacted with.
NoSuchFrameException
Reason – In case we try to switch to a frame but the targetted frame is not present.
Resolution – Check the frame locators and make sure the frame is present on the webpage.
NoSuchWindowException
Reason – In case we try to switch to a window but the targetted window is not present.
Resolution – Get the list of window handles using driver.getWindowHandles() and switch to one of the handles present at that particular time.
UnexpectedAlertPresentException
Reason – In case an unexpected alert blocks the normal interaction of the driver.
Resolution – Accept or dismiss the alert to continue interacting with the dom.
TimeoutException
Reason – In case a command execution gets timeout.
Resolution – This may be a valid exception unless we have set very low timeout values in implicit and explicit waits.
InvalidElementStateException
Reason – In case the state of an element is not appropriate for the desired action.
Resolution – Make sure that the element is available to perform the desired operation by waiting for the desired ExpectedCondition in explicit wait.
NoSuchAttributeException
Reason – In case we are trying to fetch an attribute’s value but the attribute is not correct.
Resolution – Just make sure the attribute we want to fetch from an element is actually present in the element or not.
WebDriverException
Reason – In case there is some issue with driver instance preventing it from getting launched.
Resolution – Check the driver’s instantiation and the dependencies required to instantiate the driver object.