WebDriverException: Сообщение: неизвестная ошибка: не удалось запустить Chrome: аварийный выход из ChromeDriver Chrome и Selenium через Python на VPS - PullRequest
0 голосов
/ 15 февраля 2019

Таким образом, у меня точно такая же ошибка, как и у этих сообщений

Selenium 'Chrome не удалось запустить: произошел ненормальный' ошибка

Неизвестная ошибка: Chrome не удалосьдля начала: вышли ненормально

Я попробовал то, что они рекомендовали, и это не сработало.

Вот мой код

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-extensions')
options.add_argument('--headless')
options.add_argument('--disable-gpu')

driver = webdriver.Chrome(chrome_options=options)
driver.get('http://nytimes.com')
print(driver.title)

driver.close()

А вот полное сообщение об ошибке

Traceback (most recent call last):
  File "seleniumtest.py", line 13, in <module>
    driver = webdriver.Chrome(chrome_options=options)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.15.0-42-generic x86_64)

Что, черт возьми, я делаю неправильно?Я запускаю это на Ubuntu VPS на digitalocean.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Это сообщение об ошибке ...

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.15.0-42-generic x86_64)

... подразумевает, что ChromeDriver не смог инициировать / создать новый WebBrowser т.е. Браузер Chrome сеанс.

Существует ровно две проблемы несовместимости , как описано ниже.


disable-gpu

Когда Headless Chrome был впервые выпущен как GA (Общая доступность) от Google Team В статье Getting Started with Headless Chrome упоминается, что:

--disable-gpu \                # Temporarily needed if running on Windows.

Примечание было добавлено как:

Прямо сейчас, вы также захотите включить флаг --disable-gpu, если вы работаете в Windows.

В соответствии с обсуждением Без заголовка: сделать флаг --disable-gpu ненужным стало ясно, что:

Флаг --disable-gpu больше не нужен в Linux или Mac OSX .Это также станет ненужным в Windows, как только ошибка SwiftShader не будет выполнена, а утверждение в Windows в режиме без головы исправлено.Теперь, когда эта проблема помечена как исправлена ​​, аргумент --disable-gpu теперь должен быть избыточным.

Примечание : подробное обсуждение можно найти в ОШИБКА: gpu_process_transport_factory.cc (1007) - Потерянный общий контекст пользовательского интерфейса: при инициализации браузера Chrome через ChromeDriver в режиме без головы


Однако ваша основная проблема заключается в несовместимости междуверсия используемых вами двоичных файлов выглядит следующим образом:

  • Вы используете chromedriver = 2,30
  • Примечания к выпуску chromedriver = 2,30 четко упоминается следующее:

Поддержка Chrome v58-60

  • Ваш chrome версия нам неизвестна.Предполагается, что вы используете один из последних Chrome выпусков:
    • Chrome version 71
    • Chrome version 72
    • Chrome version 73

Таким образом, существует явное несоответствие между ChromeDriver v2.30 и Chrome Browser v71-73

Solution

  • В зависимости от браузера Chrome обновление версии ChromeDriver соответственно, следуя рекомендациям ниже:
    • Если вы используете Chrome версии 73 , вам необходимо загрузить ChromeDriver 73.0.3683.20
    • Если вы используете Chrome версии 72 , вам необходимо загрузить ChromeDriver 2.46 или ChromeDriver 72.0.3626.69
    • Если вы используете Chrome версии 71 , вам необходимо загрузить ChromeDriver 2.46 или ChromeDriver 71.0.3578.137
    • Для более старой версии Chrome см. это обсуждение для версии ChromeDriver , котораяподдерживает его.
0 голосов
/ 15 февраля 2019

Вы не предоставили версию своего браузера, но chromedriver 2.30 - довольно старый - около июня 2017 года;Chrome был версии 59 тогда, а сейчас 72. ( да, я проверил, не похоже, что я знаю историю их релизов наизусть ? )

Я бы предложил обновить его до последней версии - или доодин соответствует вашему установленному браузеру.

...