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