python - WebDriverException: Mensaje: El servicio chromedriver salió inesperadamente. El código de estado era: 127
google-chrome selenium (6)
Me gustaría construir mi rastreador usando selenio en mi servidor.
Por lo tanto, instalé / descargué las dependencias requeridas, como chromedriver, chromium-browser, etc.en mi servidor Ubuntu17.10
Sin embargo, cuando ejecuto el siguiente código:
driver = webdriver.Chrome()
Devuelve el siguiente error:
---------------------------------------------------------------------------
WebDriverException Traceback (most recent call last)
<ipython-input-14-2cdab8938403> in <module>()
----> 1 driver = webdriver.Chrome()
/home/zachary/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options)
66 service_args=service_args,
67 log_path=service_log_path)
---> 68 self.service.start()
69
70 try:
/home/zachary/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py in start(self)
96 count = 0
97 while True:
---> 98 self.assert_process_still_running()
99 if self.is_connectable():
100 break
/home/zachary/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py in assert_process_still_running(self)
109 raise WebDriverException(
110 ''Service %s unexpectedly exited. Status code was: %s''
--> 111 % (self.path, return_code)
112 )
113
WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 127
¿Qué significa que está emocionado ...?
No puedo entender cuál es la intención original de ese código de error y dónde comenzar a solucionarlo.
Parece un caso muy raro.
Quizás relevante:
Instalé ubuntu desktop 17.10 en mi escritorio pero no pude iniciar la GUI. Por lo tanto, solo estoy usando terminal, pero hasta ahora funciona bien. Había instalado ssh y control remoto jupyter notebook desde mi mac al escritorio del servidor, y esos errores provienen de él. Espero que esta información sea relevante para resolver este error, de lo contrario lo anulará.
Encontré el mismo error al usar selenium / chromedriver en mi VPS.
Instalé
chromium-browser
y el problema desapareció.
sudo apt-get install -y chromium-browser
Tal vez no se necesita el
chromium-browser
, pero los paquetes se instalaron junto con él.
Sin embargo, eso fue una solución rápida.
Mientras trabaja con
Selenium v3.11.0
,
ChromeDriver v2.36
y
Chrome v64.x
, debe descargar el último
ChromeDriver
de
ChromeDriver: WebDriver para Chrome
y colocarlo en su sistema.
Luego, mientras inicializa
WebDriver
y
WebBrowser
, debe pasar el argumento
executable_path
junto con la ruta absoluta de
ChromeDriver de la
siguiente manera:
from selenium import webdriver
driver = webdriver.Chrome(executable_path=''/path/to/chromedriver'')
driver.get("http://www.python.org")
Parece que
chromedriver
necesita algunas bibliotecas adicionales.
Esto resolvió el problema para mí:
apt-get install -y libglib2.0-0=2.50.3-2 /
libnss3=2:3.26.2-1.1+deb9u1 /
libgconf-2-4=3.2.6-4+b1 /
libfontconfig1=2.11.0-6.7+b1
Estaba trabajando en una configuración similar usando un contenedor docker en lugar de un servidor / VM sin X / GUI.
Para averiguar qué dependencias son necesarias, intenté ejecutarlo iterativamente desde la línea de comando de esta manera:
/opt/chromedriver/2.33/chromedriver --version
una y otra vez.
Luego, cada vez que usaba comandos como
apt-cache search <STUFF>
y
apt-cache madison <STUFF>
para averiguar la versión exacta del paquete
deb
que necesitaba
chromedriver
2.33 (en mi caso, pero supongo que algo similar funcionaría para cualquier versión de
chromedriver
).
Se resolvió eliminando cuidadosamente el controlador cromático existente y actualizándolo a una versión más nueva:
- Eliminar todos los archivos de chromedriver existentes
-
Descargue
wget https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip
(reemplace 2.46 bit por el más nuevo si es necesario, consulte las versiones compatibles aquí: http://chromedriver.chromium.org/downloads ) -
Descomprima, convierta a ejecutable ejecutando
chmod +x chromedriver
-
Muévalo a
mv -f chromedriver /usr/local/bin/chromedriver
para que aparezca en PATH
Esto debería resolver un problema. Pensé que la actualización no funciona porque cuando lo probé por primera vez, no eliminé la versión anterior y todavía la estaba usando accidentalmente.
Tuve este mismo problema, y el problema se debió a la versión de chromedriver .
Asegúrese de estar utilizando el último navegador Chrome junto con el último chromedriver .
Volver a versiones anteriores también podría ser una solución ...
Estoy usando Ubuntu 18.10 e instalé el último Selenium (3.141.0) y ChromeDriver (75.0.3770.8), pero también tuve los mismos problemas de permisos y el código de estado 127 después.
Intenté instalar Chromium y noté que Ubuntu estaba usando la Versión 73. Así que volví de la última versión de Chromedriver (75 en este momento), volví a la Versión 73 y eso funcionó para mí.