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 в расположении по умолчанию для каждой системы, как показано на рисунке ниже:
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