Почему конфигурация Chrome WebDriver недействительна?

Я пытаюсь запустить парсер с помощью драйвера Selenium.

Мой файл py (просто начните)

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException

# Set the url we want
<and so on>

Однако я получаю следующую ошибку:

Traceback (most recent call last):
  File "main.py", line 37, 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_respons
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming  has crashed.)
  (Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.4.0-140-generic

При поиске этой ошибки кажется, что она несовместима с ChromeDriver, Google-Chrome и Selenium, однако моя версия Selenium — 3.141.0, моя версия Chrome — 72.0.3626.119, а мой ChromeDriver — 2.46.

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

Есть идеи, что не так?

Эта ошибка возникает каждый раз? Вы пытались повторить тест пару раз?

Alex 25.02.2019 13:30

Да, пробовал несколько раз, но одна и та же ошибка.

Alludy1962 25.02.2019 13:30

Можете ли вы попробовать запустить chromedriver самостоятельно?

Alex 25.02.2019 13:34

Взгляните на это: stackoverflow.com/a/53078276/6808714

Mahrez BenHamad 25.02.2019 13:34

вы указали путь к драйверу chrome

Manoj biroj 25.02.2019 13:35

Системная ссылка @MaHrezBenHamad Chrome уже присутствует, как говорится в этом сообщении.

Alludy1962 25.02.2019 13:46

Попробуйте это @Alludy1962: options = webdriver.ChromeOptions() options.add_argument('--disable-extensions') options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument( '--no-sandbox') вернуть webdriver.Chrome(chrome_options=options)

Mahrez BenHamad 25.02.2019 13:52

@ Alludy1962: Кроме того, если вы найдете решение своей проблемы, вы все равно можете время от времени получать эту ошибку. В хромдрайвере есть ошибка, и она еще не исправлена ​​github.com/heroku/heroku-buildpack-google-chrome/issues/46

Alex 25.02.2019 14:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
1 220
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я столкнулся с этой ошибкой в ​​Ubuntu 18.04, и это может быть одна из нескольких причин, вызывающих сбой Chrome. Попробуйте установить эти флаги:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--no-sandbox")
options.add_argument("--headless")

driver = webdriver.Chrome("/usr/local/bin/chromedriver", chrome_options=options)

Флаг --headless гарантирует, что Chrome запускается в автономном режиме, поскольку я предполагаю, что у вас нет рабочего стола, работающего на Ubuntu. флаг --no-sandbox отключает песочницу в Linux, которая иногда вызывает проблемы при запуске.

Другие вопросы по теме