Почему не обрабатывается исключение?
Есть функция, которая должна возвращать либо True, либо False если элемент найден или нет
def authCheck(self):
self.driver.get(self.VK)
sleep(5)
self.driver.find_element(By.XPATH, '//*[@id="index_email"]')
try:
print("Вы не авторизированы!")
return False
except NoSuchElementException:
print("Вы авторизированы!")
return True
Но обрабатывается только в части try, а если авторизация уже произведена, выдает не True а ошибку
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="index_email"]"}
(Session info: chrome=93.0.4577.82)
Ответы (1 шт):
Автор решения: Tehnorobot
→ Ссылка
Но обрабатывается только в части try, а если авторизация уже произведена, выдает не True а ошибку
У вас ошибка возникает в этой строчке: self.driver.find_element(By.XPATH, '//*[@id="index_email"]'), но отлавливаете ошибку здесь:
print("Вы не авторизированы!")
return False
Вам нужно написать так:
try:
self.driver.find_element(By.XPATH, '//*[@id="index_email"]')
print("Вы не авторизированы!")
except NoSuchElementException:
print("Вы авторизированы!")
Я бы вам посоветовал получше изучить питон, чтоб в дальнейшем не возникали ошибки и неточности в коде.