Python, прервать условие IF

Рейтинг: -1Ответов: 2Опубликовано: 11.01.2023

Всем привет. Я делаю парсер и на сайте, где проходит авторизация иногда появляется кнопка 'Выход'. Мне нужно написать функцию, которая будет автоматически нажимать на кнопку 'Выход', но проблема в том, что кнопка появляется через раз и функция нажатия также отрабатывает через раз, попутно выдавая ошибку. Я делал через условие IF, мол если видна кнопка, то нажимай, но когда её не видно, то вылезает ошибка и парсер не отрабатывает. Что в итоге писать в Else? Break и continue не отрабатывают без цикла for

x = WebDriverWait(self._browser, 10).until(
            EC.visibility_of_element_located(*локатор*)))
if x:
   x.click()                                        

Ответы

▲ 0Принят

А Вы зацепитесь за текст этой кнопки )

try:
    if x.text == 'Выход':
        x.click()
except Exception:
    pass

Ниже ответ тоже рабочий

▲ 0

При помощи if x: не получится обойти ошибку, потому что она возникает раньше, в момент работы парсера - строка x = WebDriverWait(...).

Для решения проблемы достаточно обернуть код в блок try/except и обработать исключение NoSuchElementException:

from selenium.common.exceptions import NoSuchElementException

try:
    x = WebDriverWait(self._browser, 10).until(
        EC.visibility_of_element_located(*локатор*))
    x.click()   
except NoSuchElementException:
    pass