Вопрос-Ответ

Selenium: WebDriverException:Chrome failed to start: crashed as google-chrome is no longer running so ChromeDriver is assuming that Chrome has crashed

Selenium: WebDriverException: Chrome не удалось запустить: произошел сбой, поскольку Google-chrome больше не запущен, поэтому ChromeDriver предполагает, что Chrome произошел сбой

Недавно я сменил компьютер и с тех пор не могу запустить chrome с selenium. Я также пробовал 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 и chromedriver.

РЕДАКТИРОВАТЬ: После попытки решения @ 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)
Переведено автоматически
Ответ 1

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

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

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')
chrome_options.add_argument('--disable-dev-shm-usage')
d = webdriver.Chrome('/home/<user>/chromedriver',chrome_options=chrome_options)
d.get('https://www.google.nl/')
Ответ 2

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

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 не смог инициировать / создать новый веб-браузер, т.е. сеанс браузера 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" #chrome binary location specified here
    options.add_argument("--start-maximized") #open Browser in maximized mode
    options.add_argument("--no-sandbox") #bypass OS security model
    options.add_argument("--disable-dev-shm-usage") #overcome limited resource problems
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get('http://google.com/')

  • Java Решение:


    System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
    ChromeOptions opt = new ChromeOptions();
    opt.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"); //chrome binary location specified here
    options.addArguments("start-maximized");
    options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
    options.setExperimentalOption("useAutomationExtension", false);
    WebDriver driver = new ChromeDriver(opt);
    driver.get("https://www.google.com/");

Ответ 3

надеюсь, это кому-то поможет. у меня это сработало в 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()
Ответ 4

У меня была похожая проблема, и я обнаружил, что аргументы опции должны располагаться в определенном порядке. Мне известны только два аргумента, которые потребовались, чтобы это заработало на моем компьютере с 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/')
2023-04-24 13:11 python selenium-webdriver