Mensaje de error: "El ejecutable 'chromedriver' debe estar disponible en la ruta"
Estoy usando Selenium con Python y descargué Chromedriver para mi computadora con Windows desde este sitio: http://chromedriver.storage.googleapis.com/index.html?path=2.15/
Después de descargar el archivo zip, lo descomprimí en mi carpeta de descargas. Luego puse la ruta al binario ejecutable (C:\Users\michael\Downloads\chromedriver_win32) en la variable de entorno "Ruta".
Sin embargo, cuando ejecuto el siguiente código:
from selenium import webdriver
driver = webdriver.Chrome()
... Sigo recibiendo el siguiente mensaje de error:
WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver
Pero, como se explicó anteriormente, el ejecutable está (!) en la ruta... ¿qué está pasando aquí?
Veo que las discusiones todavía hablan sobre la forma antigua de configurar Chromedriver descargando el binario y configurando la ruta manualmente.
Esto se puede hacer automáticamente usando webdriver-manager
pip install webdriver-manager
Ahora el código anterior en la pregunta funcionará simplemente con el cambio a continuación,
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
Lo mismo se puede utilizar para configurar Firefox, Edge y, por ejemplo, los archivos binarios.
Puede probar si realmente está en la RUTA, si abre un cmd y escribe chromedriver
(asumiendo que el ejecutable de Chromedriver todavía tiene este nombre) y presiona Enter. Si Starting ChromeDriver 2.15.322448
aparece, la RUTA está configurada correctamente y hay algo más que va mal.
Alternativamente, puedes usar una ruta directa al controlador Chrome como esta:
driver = webdriver.Chrome('/path/to/chromedriver')
Entonces en tu caso específico:
driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")
En Ubuntu :
sudo apt install chromium-chromedriver
En Debian :
sudo apt install chromium-driver
En macOS instale Homebrew y luego haga
brew install --cask chromedriver
Para Linux y OSX
Paso 1: descarga el controlador Chrome
# You can find more recent/older versions at http://chromedriver.storage.googleapis.com/
# Also make sure to pick the right driver, based on your Operating System
wget http://chromedriver.storage.googleapis.com/81.0.4044.69/chromedriver_mac64.zip
Para debian:wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
Paso 2: agregue chromedriver a/usr/local/bin
unzip chromedriver_mac64.zip
sudo mv chromedriver /usr/local/bin
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod +x /usr/local/bin/chromedriver
Ahora deberías poder ejecutar
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://localhost:8000')
sin ningún problema
Tenemos que agregar una cadena de ruta, comenzar con la letra r
antes de la cadena, para una cadena sin formato. Probé de esta manera y funciona.
driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")