Selenium: WebDriverException: Chrome no se pudo iniciar: se bloqueó porque google-chrome ya no se está ejecutando, por lo que ChromeDriver está asumiendo que Chrome se ha bloqueado

Soy consciente de que hay varias respuestas con respecto a esta pregunta, pero nada me ha funcionado hasta ahora, por lo tanto, estoy publicando una nueva pregunta.

Recientemente cambié de computadora y desde entonces no puedo lanzar Chrome con selenium. También he probado Firefox pero el navegador no enciende.

from selenium import webdriver d = webdriver.Chrome('/home/PycharmProjects/chromedriver') d.get('https://www.google.nl/') 

Obtuve el siguiente error:

 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) 

Tengo la última versión de Chrome y Chromedriver instalado

EDITAR: Después de intentar la solución @ b0sss, aparece el siguiente error.

 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) 

Este mensaje de error …

 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.) 

… implica que ChromeDriver no pudo iniciar / generar un nuevo WebBrowser, es decir, una sesión de Chrome Browser .

Su principal problema es que el navegador Chrome no está instalado en la ubicación predeterminada dentro de su sistema.

El servidor, es decir, ChromeDriver, espera que tenga Chrome instalado en la ubicación predeterminada para cada sistema, como se muestra en la siguiente imagen:

Chrome_binary_expected_location

1 Para los sistemas Linux, ChromeDriver espera que /usr/bin/google-chrome sea ​​un enlace simbólico al binario real de Chrome.


Solución

En caso de que esté utilizando un ejecutable de Chrome en una ubicación no estándar, debe anular la ubicación binaria de Chrome. como sigue:

Chrome ejecutable en una ubicación no estándar

Intente descargar AQUÍ y use esta última versión del controlador de Chrome.

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

EDITAR:

Prueba esto:

 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/') 

Encontré el problema exacto ejecutándose en el contenedor de la ventana acoplable (en un entorno de comstackción). Después de ssh en el contenedor, intenté ejecutar la prueba manualmente y todavía encontré

 (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.) 

Cuando intenté ejecutar chrome localmente /usr/bin/google-chrome-stable , aparece un mensaje de error

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

Revisé mis ChromeOptions y faltaba --no-sandbox , por lo que no podía generar Chrome.

 capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( chromeOptions: { args: %w(headless --no-sandbox disable-gpu window-size=1920,1080) } ) 

en mi caso, el error fue con el usuario www-data pero no con el usuario normal en desarrollo. El error fue un problema para inicializar una pantalla x para este usuario. Entonces, el problema se resolvió ejecutando mi prueba de selenium sin abrir una ventana del navegador, sin cabeza:

 opts.set_headless(True) 

Suponiendo que ya ha descargado ChromeDriver, este error también se produce cuando ya están abiertas varias tabs de Chrome.

Si cierra todas las tabs y ejecuta de nuevo, el error debería desaparecer.