python 2.7 - property - Error desconocido: Chrome no se pudo iniciar: salió de manera anormal
selenium python (5)
Este problema se resolvió usando los siguientes pasos
1) Instalar Xvfb Centos 7: yum instalar chromedriver chromium xorg-x11-server-Xvfb
2) actualizar el controlador de Chrome Centos 7: wget https://chromedriver.storage.googleapis.com/2.40/chromedriver_linux64.zip
Recibo este error cuando ejecuto mis pruebas con selenio usando chromedriver.
selenium.common.exceptions.WebDriverException: Message: u''unknown error: Chrome failed to start: exited abnormally/n (Driver info: chromedriver=2.9.248316,platform=Linux 3.8.0-29-generic x86)''
Sí descargué google-chrome stable y también chromedriver y he usado este código para iniciar el navegador.
driver = webdriver.Chrome(''/usr/local/bin/chromedriver'')
¿Alguna sugerencia a alguien? Gracias.
Me enfrenté al mismo problema y lo solucioné instalando Chrome en:
C:/Users/../AppData/Local/Google/Chrome/Application
Puede hacerlo ejecutando la configuración de Chrome y diciendo no cuando se lo solicite el Control de cuentas de usuario.
Para ayudar a depurar este problema, puede usar los argumentos service_log_path
y service_args
al selenium webdriver para ver la salida desde chromedriver:
service_log_path = "{}/chromedriver.log".format(outputdir)
service_args = [''--verbose'']
driver = webdriver.Chrome(''/path/to/chromedriver'',
service_args=service_args,
service_log_path=service_log_path)
Estaba recibiendo el mismo mensaje de excepción y encontré dos formas de superarlo; No estoy seguro de si el problema del OP es el mismo, pero si no, el registro del chromedriver ayudará. Al mirar mi registro, descubrí que el controlador cromado (intenté 2.9 a 2.6 mientras trataba de solucionar este problema) decide qué navegador ejecutar de forma inesperada. En el directorio donde se encuentra mi cromedriver tengo estos archivos:
$ ls -l /path/to/
-rwx------ 1 pjh grad_cs 5503600 Feb 3 00:07 chromedriver-2.9
drwxr-xr-x 3 pjh grad_cs 4096 Mar 28 15:51 chromium
Cuando invoco el cromedriver usando el mismo código python que el OP:
driver = webdriver.Chrome(''/path/to/chromedriver-2.9'')
Esto lleva al mensaje de excepción. En chromedriver.log encontré este mensaje:
[1.043][INFO]: Launching chrome: /path/to/chromium ...
¡Increíble! ¡El cromedriver está tratando de usar /path/to/chromium
(que no es un archivo ejecutable, sino un directorio que contiene el código fuente) como el navegador para ejecutar! Aparentemente, chromedriver intenta buscar en el directorio actual para que se ejecute un navegador antes de buscar mi PATH
. Entonces, una solución fácil a este problema es verificar el directorio donde se encuentra el chromedriver
para archivos / directorios como chrome
y chromium
y moverlos a un directorio diferente al chromedriver
.
Una mejor solución es indicar explícitamente a selenium / chromedriver qué navegador ejecutar ejecutando el argumento chrome_options:
options = webdriver.ChromeOptions()
options.binary_location = ''/opt/google/chrome/google-chrome''
service_log_path = "{}/chromedriver.log".format(outputdir)
service_args = [''--verbose'']
driver = webdriver.Chrome(''/path/to/chromedriver'',
chrome_options=options,
service_args=service_args,
service_log_path=service_log_path)
El chromedriver.log ahora muestra:
[0.999][INFO]: Launching chrome: /opt/google/chrome/google-chrome ...
como se esperaba.
Si usa Linux, asegúrese de que no se está ejecutando como root. Eso que me dio el error.
Para Linux:
Inicie la pantalla antes de iniciar Chrome. para más información haga clic here
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 800))
display.start()
driver = webdriver.Chrome()