exception
?An exception
is an event that occurs during the execution of a program, that disrupts the normal flow of the program’s instructions.
NoSuchElementException
occur in Selenium?When we try to find any element in an HTML page that does not exist, NoSuchElementException
will be raised.
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[name="userNam"]"}
Below are some examples of scenarios that would raise an exception.
It’s possible that the source code of the webpage may have been changed since the last time you accessed it. Change your code according to the new source to solve the issue.
Cross-check the spelling of the element you want to find.
When new elements are added or deleted from the source code of the webpage, the XPath of that specific element also changes. Check XPath to determine if it is valid.
When we try to run the code below, it raises NoSuchElementException
. This is because we try to find an element called userNam
, but the webpage element name in the source code is userName
.
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.keys import Keysimport timePATH=r"provide your chrome driver path here"driver = webdriver.Chrome(PATH)driver.get("http://demo.guru99.com/test/newtours/")user_name = driver.find_element_by_name("userNam")password = driver.find_element_by_name("password")submit = driver.find_element_by_name("submit")user_name.send_keys("mercury")password.send_keys("mercury")submit.click()
Script will terminate when an exception is raised. We can handle exceptions with the try except
block and continue with the flow of the script.
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.keys import Keysfrom selenium.common.exceptions import NoSuchElementExceptionimport timePATH=r"C:\Users\GUTKRISH\chromedriver.exe"driver = webdriver.Chrome(PATH)driver.get("http://demo.guru99.com/test/newtours/")try:user_name = driver.find_element_by_name("userNam")user_name.send_keys("mercury")except NoSuchElementException:print("exception handled")password = driver.find_element_by_name("password")submit = driver.find_element_by_name("submit")password.send_keys("mercury")submit.click()