Python, selenium, geckodriver, безголовый режим, удаленный сервер. При настройке драйвера ошибка: Read timed out. (read timeout=120)

Пишу программу на Питоне с использованием selenium. На локальном компьютере все работает, но проблема началась, когда я пыталась перенести программу на удаленный сервер с настройкой безголового режима. Есть у меня такая функция с настройкой драйвера:

def configure_firefox_driver_with_proxy(proxy_host=None, proxy_port=None):
    print("Точка 1")
    options = webdriver.FirefoxOptions()
    print("Точка 2")
    options.add_argument("--headless")
    print("Точка 3")
    options.binary_location = '/usr/bin/firefox'
    print("Точка 4")
    driver_path = '/root/geckodriver/geckodriver'
    print("Точка 5")
    service = Service(driver_path)
    print("Точка 6")
    service.log_path = '/root/{моя_папка}/geckodriver.log'  
    print("Точка 7")

    if not proxy_host or not proxy_port:
        print("Точка 8")
        return webdriver.Firefox(
        options=options,
        service=service
    )
    seleniumwire_options = {
        'proxy': {
            'http': f'socks5://{proxy_host}:{proxy_port}',
            'https': f'socks5://{proxy_host}:{proxy_port}',
            'no_proxy': 'localhost,127.0.0.1',
            'proxy_type': 'manual'
        }
    }

    return webdriver.Firefox(
        service=service,
        options=options,
        seleniumwire_options=seleniumwire_options
    )

Строки options.add_argument("--headless") и service.log_path = '/root/{моя_папка}/geckodriver.log' появились уже после того, как я загрузила на сервер. Файрфокс установила, geckodriver добавила в указанную папку. Я пытаюсь запустить тестовую функцию:

def geckotest():
    driver = configure_firefox_driver_with_proxy()
    print("Драйвер получен")
    driver.get({какой-то работающий сайт})
    print("Открыто")    
    sleep(3)
    print("Все нормально")
    driver.quit()

Но у меня, проходя 8 точек нормально, долго виснет вот тут

return webdriver.Firefox(
        options=options,
        service=service
)

И выдает большую ошибку с перечислением файлов и окончанием

urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='localhost', port=54001): Read timed out. (read timeout=120)

Подробнее сказать не могу, так как файл логов не создается в указанной папке. Версия selenium - 4.31.0, geckodriver отдельно запускается нормально, слушает на 4444 порту.
Как исправить эту проблему?


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

Автор решения: Donna Lizard

Проблема была в том, что я установила снаповский firefox. Удалила snap-версию и установила deb по инструкции https://cxo.lv/soft/nonsoft/284-kak-udalit-snap-i-postavit-traditsionnyj-deb

→ Ссылка