Reputation: 119
I'm trying the use a try/except statement to findout if an element exists in the WebDrive or not, if so then run a specific code line,
try:
WebDriver.find_element_by_css_selector('div[class="..."')
except NoSuchElement:
ActionToRunInCaseNoSuchElementTrue
else:
ActionToRunInCaseNoSuchElementFalse
but running this code gives an error:
how should the Exception be defined? Is there any shorter/easier way to check if an element does exist in a web page and run a command if so and another if not?
Upvotes: 7
Views: 14847
Reputation: 50809
Instead of using try except
you can use find_elements
and check if the returned list has any elements
elements = WebDriver.find_elements_by_css_selector('div[class="..."')
if not elements:
ActionToRunInCaseNoSuchElementTrue
else:
ActionToRunInCaseNoSuchElementFalse
# the element is in elements[0]
Upvotes: 4
Reputation: 52665
To be able to use required exception you have to import it first with correct name (NoSuchElement
-> NoSuchElementException
):
from selenium.common.exceptions import NoSuchElementException
try:
WebDriver.find_element_by_css_selector('div[class="..."')
except NoSuchElementException:
ActionToRunInCaseNoSuchElementTrue
Upvotes: 8