Я пытаюсь запустить Chrome WebDriver на Linux, но он зависает, а затем закрывается - PullRequest
0 голосов
/ 02 июля 2019

Я делаю программу с селеном (питоном).Он работал, и из ниоткуда веб-драйвер больше не работает.Я работаю в среде Windows (и она работает нормально), но как только я загружаю код на рабочий сервер (Ubuntu), я пытаюсь открыть веб-драйвер, и он отображает только data;, драйвер зависает, затем закрывается,Никакой код после этого не продолжается.

Пример:

print("Starting web driver")
driver = webdriver.Chrome(driver_path, options=opt)
print("Opening URL") # This code doesn't run
driver.get(config.url) # This code doesn't run

Вещи, которые я пробовал:

  • Запуск его в Windows (работает правильно)

  • Обновление веб-драйвера

  • Запуск его вне venv

  • Запуск драйвера вновое изолированное окружение

  • Перенос всего кода в try-кроме (без ошибок)

  • Запуск с аргументом --headless

Редактировать: я использую python3.7, Chrome WebDriver V 75.0.3770.90

Edit2: driver_path var - это относительный путь к файлу chromedriver.Опция - это мой список параметров Chrome:

opt = Options()
opt.add_argument('--no-sandbox')
opt.add_argument('--disable-dev-shm-usage')
profile = {"plugins.always_open_pdf_externally": True,
           "download.default_directory": download_directory,
           "download.prompt_for_download": False,
           "download.directory_upgrade": True}
opt.add_experimental_option("prefs", profile)

Я также использую gunicorn в качестве своего веб-сервера, но при запуске его с веб-сервером по умолчанию (колба) я все еще сталкиваюсь с проблемой.Я также выполняю функции, написанные для селена, через веб-приложение на основе колб (это веб-приложение для работы). На компьютере с Ubuntu, на котором выполняется скрипт, установлена ​​среда рабочего стола.

What happens

Через 15-25 секунд окна закрываются без вывода в терминал.Через ~ 90 секунд я получаю сообщение в терминале:

Message: session not created
from disconnected: unable to connect to renderer
    (Session info: chrome=75.0.3770.90)

Я также заметил, что для запуска драйвера chrome требуется больше времени, чем обычно.

Edit3: I 'Я буквально удалил всю виртуальную машину и переустановил ее с нуля, и я все еще сталкиваюсь с той же проблемой, я вернулся к более старой версии, и она все еще не работает, что не имеет никакого логического смысла.Я думал только о том, что есть какая-то ошибка конфигурации или что-то мешает ей.

Edit4: мне удалось получить журнал от веб-драйвера, добавив аргумент --verbose Вот журнал:

[1562179109.454][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179111.454][WARNING]: Timed out connecting to Chrome, retrying...
[1562179111.454][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179115.454][WARNING]: Timed out connecting to Chrome, retrying...
[1562179115.455][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179123.454][WARNING]: Timed out connecting to Chrome, retrying...
[1562179123.455][INFO]: resolved localhost to ["::1","127.0.0.1"]
[1562179139.455][WARNING]: Timed out connecting to Chrome, giving up.
[1562179139.506][INFO]: [42e538ee02eb06b9ac776969dddf01d1] RESPONSE InitSession ERROR session not created
from disconnected: unable to connect to renderer
  (Session info: chrome=75.0.3770.90)
[1562179139.506][DEBUG]: Log type 'driver' lost 9 entries on destruction
[1562179139.506][DEBUG]: Log type 'browser' lost 0 entries on destruction

Я не слишком знаком с Linux, но из того, что я видел в прошлом, я чувствую, что это как-то связано с / etc / hosts (idk?)

Edit5: Я заметил, что это начало происходить после того, как я установил windscribe (vpn), что заставляет меня думать, что windscribe как-то мешает соединению.

1 Ответ

0 голосов
/ 03 июля 2019

Оказывается, windscribe (vpn) мешает подключению к chrome webdriver, я полагаю, что это как-то связано со встроенным брандмауэром, после удаления, вызова sudo apt autoremove -y и перезагрузки все работает нормально!

Редактировать: я переустановил VPN (windscribe) и деактивировал включенный брандмауэр, и после этого он работал нормально.

...