Python 3.10: ошибка при работе с веб узлом (при выполнении скрипта через Selenium)

Есть код, который выполняет ряд функций по работе с html посредством Selenium. В среднем каждый десятый прогон скрипт падает в связи с потеряй коннекта с сайтом. Причем, на сети потерь с данным узлом нет (iperf и ping). Было принято решение попробовать обрабатывать эту ошибку, и в случае ее возникновения перезапускать весь скрипт. Но при попытке добавить это исключение python ругается на то, что данного модуля у него нет. Для примера, TimeoutException. Подскажите, как лучше реализовать обход этой ошибки? Возможно есть более простой способ.
Ранее стоял

except Exception as e:
    write_debug(e)
    driver.close()
    driver.quite()
    main()

но он не давал успеха.

Ниже вывод последней ошибки.

Traceback (most recent call last):
  File "C:\Users\JunG\Desktop\send_cards_v3.py", line 247, in send_cards
    elem_vsplit_push = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,
  File "C:\Program Files\Python310\lib\site-packages\selenium\webdriver\support\wait.py", line 95, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 
Stacktrace:
  GetHandleVerifier [0x00007FF728135E42+3538674]
  (No symbol) [0x00007FF727D54C02]
  (No symbol) [0x00007FF727C05AEB]
  (No symbol) [0x00007FF727C4BF4E]
  (No symbol) [0x00007FF727C4C0CC]
  (No symbol) [0x00007FF727C8E477]
  (No symbol) [0x00007FF727C6F0EF]
  (No symbol) [0x00007FF727C8BDE3]
  (No symbol) [0x00007FF727C6EE53]
  (No symbol) [0x00007FF727C3F514]
  (No symbol) [0x00007FF727C40631]
  GetHandleVerifier [0x00007FF728166CAD+3738973]
  GetHandleVerifier [0x00007FF7281BC506+4089270]
  GetHandleVerifier [0x00007FF7281B4823+4057299]
  GetHandleVerifier [0x00007FF727E85C49+720121]
  (No symbol) [0x00007FF727D6126F]
  (No symbol) [0x00007FF727D5C304]
  (No symbol) [0x00007FF727D5C432]
  (No symbol) [0x00007FF727D4BD04]
  BaseThreadInitThunk [0x00007FFEAA5B7614+20]
  RtlUserThreadStart [0x00007FFEABEA26A1+33]


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\site-packages\urllib3\connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "C:\Program Files\Python310\lib\site-packages\urllib3\util\connection.py", line 95, in create_connection
    raise err
  File "C:\Program Files\Python310\lib\site-packages\urllib3\util\connection.py", line 85, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение

Ответы (1 шт):

Автор решения: Revolucion for Monica

Вы сталкиваетесь с TimeoutException, которая возникает случайным образом при выполнении вашего Selenium-скрипта. Эта ошибка возникает, когда выполнение команды занимает больше времени, чем установлено.

Решения:

  1. Увеличение времени ожидания:

Самое простое решение - увеличить время ожидания по умолчанию Selenium. Это можно сделать с помощью метода set_page_load_timeout() или set_script_timeout() webdriver.

driver.set_page_load_timeout(60)  # 60 секунд для загрузки страницы
driver.set_script_timeout(60)  # 60 секунд для выполнения скрипта
  1. Игнорирование ошибки:

Если увеличение времени ожидания не решает проблему, вы можете попробовать игнорировать TimeoutException. Это можно сделать с помощью блока try/except.

try:
    # Ваш Selenium-код
except TimeoutException:
    # etwas
  1. Перезапуск скрипта:

Если вы хотите перезапустить скрипт в случае TimeoutException, вы можете использовать блок try/except и функцию main().

def main():
    # Ваш Selenium-код

try:
    main()
except TimeoutException:
    print("TimeoutException détectée. Redémarrage du script...")
    main()
  1. Использование библиотеки обработки исключений:

Существуют сторонние библиотеки, такие как retry, которые могут помочь вам более эффективно обрабатывать исключения.

from retry import retry

@retry(tries=3, delay=2)
def main():
    # Ваш Selenium-код

main()
→ Ссылка