Selenium: WebDriverException: не удалось запустить Chrome: произошел сбой, поскольку google-chrome больше не работает, поэтому ChromeDriver предполагает, что Chrome упал - PullRequest
0 голосов
/ 31 октября 2018

Я знаю, что есть несколько ответов на этот вопрос, но пока у меня ничего не получилось, поэтому я публикую новый вопрос.

Недавно я переключил компьютеры, и с тех пор я не могу запустить хром с селеном. Я также пробовал Firefox, но браузер просто не запускается.

from selenium import webdriver

d = webdriver.Chrome('/home/PycharmProjects/chromedriver')

d.get('https://www.google.nl/')

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

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
  (Driver info: chromedriver=2.43.600233, platform=Linux 4.15.0-38-generic x86_64)

У меня установлена ​​последняя версия Chrome и хромедрайвер

EDIT: После попытки решения @ b0sss я получаю следующую ошибку.

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (chrome not reachable)
  (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so chromedriver is assuming that Chrome has crashed.)
  (Driver info: chromedriver=2.43.600233 (523efee95e3d68b8719b3a1c83051aa63aa6b10d),platform=Linux 4.15.0-38-generic x86_64)

Ответы [ 7 ]

0 голосов
/ 20 мая 2019

надеюсь, это кому-нибудь поможет. это работало для меня на Ubuntu 18.10

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument('--no-sandbox')
driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver', options=chrome_options)
driver.get('http://www.google.com')
print('test')
driver.close()
0 голосов
/ 25 июня 2019

У меня была похожая проблема, и я обнаружил, что аргументы опции должны быть в определенном порядке . Мне известны только два аргумента, которые требовались для того, чтобы это работало на моей машине с Ubuntu 18. Этот пример кода работал на моем конце:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

d = webdriver.Chrome(executable_path=r'/home/PycharmProjects/chromedriver', chrome_options=options)
d.get('https://www.google.nl/')
0 голосов
/ 20 марта 2019

в моем случае ошибка была с пользователем www-data, но не с обычным пользователем в процессе разработки. Ошибка была проблемой для инициализации дисплея x для этого пользователя. Итак, проблема была решена при запуске моего теста селена без открытия окна браузера без заголовка:

opts.set_headless(True)
0 голосов
/ 15 января 2019

Я столкнулся с точной проблемой при работе в Docker-контейнере (в среде сборки). После того, как ssh попал в контейнер, я попытался запустить тест вручную и все еще сталкивался с

(unknown error: DevToolsActivePort file doesn't exist)
     (The process started from chrome location /usr/bin/google-chrome-stable is 
      no longer running, so ChromeDriver is assuming that Chrome has crashed.)

Когда я попытался запустить Chrome локально /usr/bin/google-chrome-stable, сообщение об ошибке

Running as root without --no-sandbox is not supported

Я проверил свои ChromeOptions, и он пропустил --no-sandbox, поэтому он не мог вызвать Chrome.

capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
  chromeOptions: { args: %w(headless --no-sandbox disable-gpu window-size=1920,1080) }
)
0 голосов
/ 07 января 2019

Если вы уже загрузили chromeDriver, эта ошибка также возникает, когда открыто несколько вкладок Chrome.

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

0 голосов
/ 31 октября 2018

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

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

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

Ваша главная проблема - браузер Chrome не установлен в расположении по умолчанию в вашей системе.

Сервер, т. Е. ChromeDriver ожидает, что Chrome установлен в расположении по умолчанию для каждой системы, как показано на рисунке ниже:

Chrome_binary_expected_location

1 В системах Linux ChromeDriver ожидает, что /usr/bin/google-chrome будет символической ссылкой на фактический двоичный файл Chrome.


Решение

Если вы используете исполняемый файл Chrome в нестандартном расположении, вы должны переопределить двоичное расположение Chrome. следующим образом:

  • Python Решение:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.binary_location = "C:\\path\\to\\chrome.exe"
    driver = webdriver.Chrome(chrome_options = options, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get('http://google.com/')
    print("Chrome Browser Invoked")
    driver.quit()
    
  • Java Решение:

Chrome executable in a non-standard location

0 голосов
/ 31 октября 2018

Попробуйте скачать ЗДЕСЬ и использовать эту последнюю версию драйвера Chrome.

https://sites.google.com/a/chromium.org/chromedriver/downloads

EDIT:

Попробуйте это:

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
d = webdriver.Chrome('/home/PycharmProjects/chromedriver',chrome_options=chrome_options)
d.get('https://www.google.nl/')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...