Почему не обрабатывается исключение?

Есть функция, которая должна возвращать либо 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("Вы авторизированы!")

Я бы вам посоветовал получше изучить питон, чтоб в дальнейшем не возникали ошибки и неточности в коде.

→ Ссылка