Python, прервать условие IF
Всем привет. Я делаю парсер и на сайте, где проходит авторизация иногда появляется кнопка 'Выход'. Мне нужно написать функцию, которая будет автоматически нажимать на кнопку 'Выход', но проблема в том, что кнопка появляется через раз и функция нажатия также отрабатывает через раз, попутно выдавая ошибку. Я делал через условие IF, мол если видна кнопка, то нажимай, но когда её не видно, то вылезает ошибка и парсер не отрабатывает. Что в итоге писать в Else? Break и continue не отрабатывают без цикла for
x = WebDriverWait(self._browser, 10).until(
EC.visibility_of_element_located(*локатор*)))
if x:
x.click()
Ответы (2 шт):
При помощи 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
А Вы зацепитесь за текст этой кнопки )
try:
if x.text == 'Выход':
x.click()
except Exception:
pass
Ниже ответ тоже рабочий