Selenium usando Python: el ejecutable Geckodriver debe estar en RUTA

435

Soy nuevo en programación y comencé hace Pythonunos 2 meses y estoy revisando Automate the Boring Stuff de Sweigart con texto de Python . Estoy usando IDLE y ya instalé el módulo de selenio y el navegador Firefox. Cada vez que intento ejecutar la función webdriver, obtengo esto:

from selenium import webdriver
browser = webdriver.Firefox()

Excepción: -

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    browser = webdriver.Firefox()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__
    self.service.start()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

Creo que necesito establecer el camino geckodriverpero no estoy seguro de cómo, entonces ¿alguien puede decirme cómo haría esto?

tadm123
fuente
2
Por favor, vea mi respuesta sobre una pregunta similar aquí
Andrew
Estoy poniendo geckodriver.exe en el directorio Python / Python35 para que tenga la misma ruta y tengo aún más problemas.
tadm123
81
En Mac:brew install geckodriver
Nostalg.io
1
Descubrí que ejecutarlo a través del navegador Chrome es un poco más rápido que en Firefox, solo tendrá que descargarlo chromedriverpara esto.
tadm123
Nota: hay Testcafe que fue de código abierto recientemente. No requiere ningún complemento de navegador, están integrados. Quería usar Selenium pero parece una alternativa interesante.
Ehvince

Respuestas:

355

selenium.common.exceptions.WebDriverException: Mensaje: el ejecutable 'geckodriver' debe estar en RUTA.

En primer lugar, tendrá que descargar el último geckodriver ejecutable desde aquí para ejecutar el último Firefox con selenio

En realidad, los enlaces del cliente Selenium intentan localizar el geckodriverejecutable del sistema PATH. Deberá agregar el directorio que contiene el ejecutable a la ruta del sistema.

  • En los sistemas Unix, puede hacer lo siguiente para agregarlo a la ruta de búsqueda de su sistema, si está utilizando un shell compatible con bash:

    export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
  • En Windows, deberá actualizar la variable del sistema Path para agregar la ruta completa del directorio al geckodriver ejecutable manualmente o la línea de comandos (no olvide reiniciar su sistema después de agregar geckodriver ejecutable en la RUTA del sistema para que surta efecto) . El principio es el mismo que en Unix.

Ahora puede ejecutar su código de la misma manera que lo hace a continuación: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exceptions.WebDriverException: Mensaje: Ubicación binaria del navegador esperada, pero no se puede encontrar el binario en la ubicación predeterminada, no se proporciona la capacidad 'moz: firefoxOptions.binary' y no se ha establecido un indicador binario en la línea de comandos

La excepción indica claramente que ha instalado Firefox en otra ubicación mientras Selenium está tratando de encontrar Firefox y ejecutarlo desde la ubicación predeterminada, pero no pudo encontrarlo. Debe proporcionar explícitamente la ubicación binaria instalada de Firefox para iniciar Firefox de la siguiente manera: -

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)
Saurabh Gaur
fuente
8
Gracias, pero configuré mi geckodriver.exeen el C:\Python\Python35\seleniumdirectorio y configuré la ruta como usted describió, pero me da el siguiente error:
tadm123
44
Gracias @Saurabh Gaur, está funcionando ahora. Agregué la ruta de Firefox a las variables del sistema manualmente y todo funciona. Toma un poco de tiempo lanzarlo, pero supongo que eso es normal. ¡Gracias!
tadm123
3
Recibí el error "WebDriverException: Mensaje: Error al iniciar el navegador: permiso denegado" al principio cuando comencé a especificar la ruta binaria de Firefox, pero reiniciar la computadora (Windows 10) resolvió el problema. - En caso de que alguien más esté teniendo el mismo problema que yo.
NoSuchElephantException
3
¿Qué es el binario? ¿Eso significa ejecutable?
Usuario
12
Además de esta respuesta, me gustaría ampliar la configuración del entorno PATHin unix. Puede configurarlo en código ya que no lo necesita en todo el sistema: os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' O simplemente mantenga el binario geckodriver en el directorio que ya está en su ruta:mv geckodriver /usr/local/bin
dsalaj
161

Esto lo resolvió para mí.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')
Nesa
fuente
Si obtiene un permiso incorrecto, intente eliminar [r '] de la ruta simplemente "excecutable_path =' path \ to \ your'diretory '"
Darius el
@adityarawat ¿en qué sistema operativo estás?
Nesa
pero ahora obtengo OSError en lugar de permisos incorrectos. De alguna manera logré copiar geckodriver a / usr / local / bin. pero ahora este nuevo error me está matando
aditya rawat
@adityarawat puede descargar geckodriver de forma independiente desde aquí: github.com/mozilla/geckodriver/releases extraerlo con tar y hacerlo ejecutable con chmod + x, no tiene que estar en / usr / local / bin, solo tiene que para especificar su camino hacia ella
Nesa
Para ser claros, descargué el archivo arm7hf.tar y también lo extraje y lo agregué a la ruta usando el comando export PATH=$PATH:geckodriver(se extrae en el Escritorio). Pero tampoco ayudó. Todavía recibo OSError [errno 8]
aditya rawat
122

estos pasos RESUELTOS para mí en ubuntu firefox 50.

  1. Descargar geckodriver

  2. Copie geckodriver en / usr / local / bin

NO necesita agregar

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)
Andrea Perdicchia
fuente
En su código no puede agregar la variable de capacidad
Andrea Perdicchia
¿Sabrías cómo configurar el directorio de descargas para Firefox? Agregué la siguiente pregunta Establecer preferencias de Firefox . Cualquier ayuda sería muy apreciada.
d84_n1nj4
En Debian o Ubuntu debes usar el comando apt para instalar Firefox. Para Windows, no tengo idea, lo siento
Andrea Perdicchia
Gracias. Después de aplicar esta respuesta, tomé esta solución para manejar un problema de seguimiento: stackoverflow.com/questions/43713445/…
HackNone
Gracias, Pycharm no encontró geckodriver aunque estaba en casa y en la carpeta del proyecto, pero después de moverlo a / usr / local / bin funcionó a la perfección
Ronald Das
32

La respuesta de @saurabh resuelve el problema, pero no explica por qué Automate the Boring Stuff with Python no incluye esos pasos.

Esto se debe a que el libro se basa en selenio 2.xy el controlador Firefox para esa serie no necesita el controlador gecko. La interfaz Gecko para manejar el navegador no estaba disponible cuando se estaba desarrollando selenio.

La última versión de la serie selenium 2.x es 2.53.6 (ver, por ejemplo, estas respuestas , para una vista más fácil de las versiones).

La página de la versión 2.53.6 no menciona gecko en absoluto. Pero desde la versión 3.0.2, la documentación indica explícitamente que necesita instalar el controlador gecko.

Si después de una actualización (o instalación en un nuevo sistema), su software que funcionó bien antes (o en su sistema anterior) ya no funciona y tiene prisa, fije la versión de selenio en su virtualenv haciendo

pip install selenium==2.53.6

pero, por supuesto, la solución a largo plazo para el desarrollo es configurar un nuevo virtualenv con la última versión de selenium, instalar el controlador gecko y probar si todo sigue funcionando como se esperaba. Pero el aumento de la versión principal podría introducir otros cambios de API que no están cubiertos en su libro, por lo que es posible que desee seguir con el selenio anterior, hasta que tenga la confianza suficiente de que puede solucionar cualquier discrepancia entre el API de selenium2 y selenium3 usted mismo.

Anthon
fuente
2
desearía que esta fuera la respuesta principal
sudo-nim
1
esto me ayudó, gracias Anthon
ghost21blade
25

En macOS con Homebrew ya instalado, simplemente puede ejecutar el comando Terminal

$ brew install geckodriver

Debido a que homebrew ya extendió, PATHno hay necesidad de modificar ningún script de inicio.

roskakori
fuente
@roskakori Hice esto y se instaló con éxito, pero sigo recibiendo el mismo error
JKC
Esto lo hizo por mí, gracias. Usando Firefox 72.0.2 y Selenium 3.141.0
Sam
17

Para configurar geckodriver para Selenium Python:

Necesita establecer la ruta geckodriver con FirefoxDriver como se muestra a continuación:

self.driver = webdriver.Firefox(executable_path = 'D:\Selenium_RiponAlWasim\geckodriver-v0.18.0-win64\geckodriver.exe')

Descargue geckodriver para su sistema operativo adecuado (desde https://github.com/mozilla/geckodriver/releases ) -> Extraiga en una carpeta de su elección -> Establezca la ruta correctamente como se mencionó anteriormente

Estoy usando Python 3.6.2 y Selenium WebDriver 3.4.3 en Windows 10.

Otra forma de configurar geckodriver:

i) Simplemente pegue el geckodriver.exe en / Python / Scripts / (En mi caso, la carpeta era: C: \ Python36 \ Scripts)
ii) Ahora escriba el código simple de la siguiente manera:

self.driver = webdriver.Firefox()
Ripon Al Wasim
fuente
17

Si está utilizando Anaconda , todo lo que tiene que hacer es activar su entorno virtual y luego instalar geckodriver con el siguiente comando :

    conda install -c conda-forge geckodriver
Rodolfo Alvarez
fuente
Sí, instala geckodriver, pero el error de pycharm permanece igual.
WebComer
Hola, probé muchas cosas y eso fue lo único que funcionó para mí :-) gracias
tezzaaa
12

Ubuntu 18.04+ y la última versión de geckodriver

Esto también debería funcionar para otras variedades * nix.

export GV=v0.26.0
wget "https://github.com/mozilla/geckodriver/releases/download/$GV/geckodriver-$GV-linux64.tar.gz"
tar xvzf geckodriver-$GV-linux64.tar.gz 
chmod +x geckodriver
sudo cp geckodriver /usr/local/bin/

Para la actualización de mac a:

geckodriver-$GV-macos.tar.gz
jmunsch
fuente
12

Veo que las discusiones aún hablan sobre la antigua forma de configurar geckodriver 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.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
Navarasu
fuente
2
Esto funcionó para mí. ¡Gracias!
igorkf
¿Safari o incluso Internet Explorer tienen un administrador de controladores similar?
Mischief_Monkey
11

¡La forma más fácil para windows!
Descargue la última versión de geckodriverdesde aquí . Agregue el archivo geckodriver.exe al directorio de Python (o cualquier otro directorio que ya esté en PATH). Esto debería resolver el problema (Probado en Windows 10)

Jalles10
fuente
No son las ventanas lo peor. Gracias por la rápida solución.
AJ_
¡Esta es, con mucho, la solución más fácil! ¡Ni siquiera es necesario reiniciar su computadora!
olenscki
8

Pasos para MAC:

La solución simple es descargar GeckoDriver y agregarlo a su RUTA del sistema. Puede usar cualquiera de los dos enfoques:

Método corto

1) Descargar y descomprimir Geckodriver .

2) Mencione la ruta al iniciar el controlador:

driver = webdriver.Firefox(executable_path='/your/path/to/geckodriver')

Método largo

1) Descargar y descomprimir Geckodriver .

2) abierto .bash_profile. Si aún no lo ha creado, puede hacerlo con el comando:touch ~/.bash_profile . Luego ábralo usando:open ~/.bash_profile

3) Teniendo en cuenta que el archivo GeckoDriver está presente en su carpeta de Descargas, puede agregar las siguientes líneas al .bash_profilearchivo:

PATH="/Users/<your-name>/Downloads/geckodriver:$PATH"
export PATH

Con esto, está agregando la ruta a GeckoDriver a su RUTA del sistema. Esto le dice al sistema dónde se encuentra GeckoDriver al ejecutar sus scripts Selenium.

4) Guardar .bash_profiley forzarlo a ejecutar. Esto carga los valores inmediatamente sin tener que reiniciar. Para hacer esto, puede ejecutar el siguiente comando:

source ~/.bash_profile

5) Eso es todo. ¡Estás listo!. Puede ejecutar el script Python ahora.

Umang Sardesai
fuente
1
Pude descargar geckodrivercon Homebrew: brew install geckodrivery luego iniciar Firefox a través de:driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver")
Winterflags
7

Algunos aportes / aclaraciones adicionales para futuros lectores de este hilo:

Lo siguiente es suficiente como resolución para Windows 7, Python 3.6, selenium 3.11:

La nota de @ dsalaj en este hilo anterior para Unix también se aplica a Windows; jugando con el camino de env. variable a nivel de Windows y se puede evitar el reinicio del sistema de Windows.

(1) Descargue geckodriver (como se describió anteriormente en este hilo) y coloque el geckdriver.exe (descomprimido) en X: \ Folder \ of \ your \ choice

(2) Ejemplo de código de Python:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Firefox();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

Notas: (1) Puede tomar alrededor de 10 segundos para que el código anterior abra el navegador Firefox para la URL especificada.
(2) La consola de Python mostrará el siguiente error si no hay ningún servidor que ya se esté ejecutando en la url especificada o sirva una página con el título que contiene la cadena 'Django': selenium.common.exceptions.WebDriverException: Mensaje: Página de error alcanzada: acerca de : neterror? e = connectionFailure & u = http% 3A // localhost% 3A8000 / & c = UTF-8 & f = regular & d = Firefox% 20can% E2% 80% 9

Snidhi Sofpro
fuente
¡Gracias, probé todas las demás soluciones, pero solo la suya funcionó en mi Windows!
pso
4

De hecho, he descubierto que puedes usar el último controlador geck sin ponerlo en la ruta del sistema. Actualmente estoy usando

https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

Firefox 50.1.0

Python 3.5.2

Selenio 3.0.2

Windows 10

Estoy ejecutando un VirtualEnv (que administro usando PyCharm, supongo que usa Pip para instalar todo)

En el siguiente código, puedo usar una ruta específica para el geckodriver usando el parámetro ejecutable_path (descubrí esto al echar un vistazo en Lib \ site-packages \ selenium \ webdriver \ firefox \ webdriver.py). Tenga en cuenta que tengo la sospecha de que el orden de los argumentos de los parámetros cuando se llama al controlador web es importante, por lo que el ejecutable_path es el último en mi código (segunda última línea en el extremo derecho)

También puede notar que uso un perfil de Firefox personalizado para solucionar el problema sec_error_unknown_issuer con el que se encontrará si el sitio que está probando tiene un certificado no confiable. ver ¿Cómo deshabilitar la advertencia de conexión no confiable de Firefox usando Selenium?

Después de la investigación, se descubrió que el controlador de Marionette está incompleto y todavía en progreso, y que ninguna cantidad de configuración de varias capacidades u opciones de perfil para despedir o configurar certificados iba a funcionar. Por lo tanto, era más fácil usar un perfil personalizado.

De todos modos, aquí está el código sobre cómo conseguí que el geckodriver funcionara sin estar en el camino:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

#you probably don't need the next 3 lines they don't seem to work anyway
firefox_capabilities['handleAlerts'] = True
firefox_capabilities['acceptSslCerts'] = True
firefox_capabilities['acceptInsecureCerts'] = True

#In the next line I'm using a specific FireFox profile because
# I wanted to get around the sec_error_unknown_issuer problems with the new Firefox and Marionette driver
# I create a FireFox profile where I had already made an exception for the site I'm testing
# see https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager

ffProfilePath = 'D:\Work\PyTestFramework\FirefoxSeleniumProfile'
profile = webdriver.FirefoxProfile(profile_directory=ffProfilePath)
geckoPath = 'D:\Work\PyTestFramework\geckodriver.exe'
browser = webdriver.Firefox(firefox_profile=profile, capabilities=firefox_capabilities, executable_path=geckoPath)
browser.get('http://stackoverflow.com')
Roochiedoor
fuente
Obtuve SyntaxError: (error unicode) el códec 'unicodeescape' no puede decodificar bytes ... Y tengo que cambiar la ruta gecko a epath = r'C: \ Users \ step_ \ Documents \ mtg_buyer \ geckodrivers \ geckodriver.exe '. ¿Quizás la razón es que estoy usando un Windows 10 chino?
Endle_Zhenbo
3

Estoy usando Windows 10 y esto funcionó para mí:

  1. Descarga geckodriver desde aquí . Descargue la versión correcta para la computadora que está utilizando
  2. Descomprima el archivo que acaba de descargar y corte / copie el archivo ".exe" que contiene
  3. Navegue a C: {su carpeta raíz de Python}. El mío fue C: \ Python27. Pegue el archivo geckodriver.exe en esta carpeta.
  4. Reinicie su entorno de desarrollo.
  5. Intente ejecutar el código nuevamente, debería funcionar ahora.
Edgar N
fuente
Gracias por mencionar que necesita reiniciar su entorno de desarrollo.
Deep
3

Considere instalar un Firefox en contenedores:

docker pull selenium/standalone-firefox
docker run --rm -d -p 5555:4444 --shm-size=2g selenium/standalone-firefox

Conéctese usando webdriver.Remote:

driver = webdriver.Remote('http://localhost:5555/wd/hub', DesiredCapabilities.FIREFOX)
driver.set_window_size(1280, 1024)
driver.get('https://toolbox.googleapps.com/apps/browserinfo/')
driver.save_screenshot('info.png')
Max Malysh
fuente
2

Es realmente triste que ninguno de los libros publicados en Selenium / Python y la mayoría de los comentarios sobre este tema a través de Google no expliquen claramente la lógica de ruta para configurar esto en Mac (¡todo es Windows!). Todos los youtubes se recogen en el "después" que tiene la configuración de ruta (en mi opinión, ¡la salida barata!). Entonces, para sus maravillosos usuarios de Mac, use lo siguiente para editar sus archivos de ruta bash:

> $ touch ~ / .bash_profile; abrir ~ / .bash_profile

Luego agregue una ruta similar a esta ... * # Configuración de RUTA para geckodriver RUTA = "/ usr / bin / geckodriver: $ {PATH}" export PATH

Establecer RUTA para Selenium firefox

RUTA = "~ / Users / yourNamePATH / VEnvPythonInterpreter / lib / python2.7 / site-packages / selenium / webdriver / firefox /: $ {PATH}" RUTA de exportación

Establecer RUTA para el ejecutable en el controlador de Firefox

PATH = "/ Users / yournamePATH / VEnvPythonInterpreter / lib / python2.7 / site-packages / selenium / webdriver / common / service.py: $ {PATH}" export PATH *

Esto funcionó para mí. Mi preocupación es cuándo la comunidad de Selenium Windows comenzará a jugar el juego real y nos incluirá a los usuarios de Mac en su arrogante membresía del club.

JustASteve
fuente
2

Selenium responde a esta pregunta en su DESCRIPTION.rst

Drivers
=======

Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.

Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

Básicamente, simplemente descargue el controlador geckodriver, descomprímalo y mueva el ejecutable a su carpeta / usr / bin

Peter Graham
fuente
Esta cita contiene las instrucciones que funcionaron en Linux mint 18.
Elliot Robert
2

Para usuarios de windows

usa el código original como es:

from selenium import webdriver
browser = webdriver.Firefox()
driver.get("https://www.google.com")

luego descargue el controlador de: mozilla / geckodriver

Colóquelo en una ruta fija (permanentemente) ... como ejemplo, lo puse en:

C: \ Python35

Luego vaya a las variables de entorno del sistema, en la cuadrícula de "Variables del sistema" busque la variable Ruta y agregue:

; C: \ Python35 \ geckodriver

geckodriver, no geckodriver.exe .

Ghanem
fuente
geckodriver, no geckodriver.exe.
Saurabh Chandra Patel
1

En Raspberry Pi tuve que crear desde el controlador ARM y configurar el geckodriver y la ruta de registro en:

sudo nano /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py

def __init__(self, firefox_profile=None, firefox_binary=None,
             timeout=30, capabilities=None, proxy=None,
             executable_path="/PATH/gecko/geckodriver",                     
firefox_options=None,
             log_path="/PATH/geckodriver.log"):
Nathan Gisvold
fuente
1

Si usa un entorno virtual y win10 (tal vez sea para otros sistemas), solo necesita poner geckodriver.exe en la siguiente carpeta en su directorio de entorno virtual:

... \ my_virtual_env_directory \ Scripts \ geckodriver.exe

una mascota
fuente
1
from webdriverdownloader import GeckoDriverDownloader # vs ChromeDriverDownloader vs OperaChromiumDriverDownloader
gdd = GeckoDriverDownloader()
gdd.download_and_install()
#gdd.download_and_install("v0.19.0")

esto le dará la ruta a su gekodriver.exe en Windows

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'C:\\Users\\username\\\bin\\geckodriver.exe')
driver.get('https://www.amazon.com/')
Consuegro
fuente
0

Mac 10.12.1 python 2.7.10 esto funciona para mí :)

def download(url):
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
browser = webdriver.Firefox(capabilities=firefox_capabilities,
                            executable_path=r'/Users/Do01/Documents/crawler-env/geckodriver')
browser.get(url)
return browser.page_source
do01
fuente
0

Estoy usando Windows 10 y Anaconda2. Intenté configurar la variable de ruta del sistema pero no funcionó. Luego simplemente agregué el archivo geckodriver.exe a la carpeta Anaconda2 / Scripts y todo funciona muy bien ahora. Para mí el camino era: -

C: \ Usuarios \ Bhavya \ Anaconda2 \ Scripts

Bhavya Ghai
fuente
0

Si desea agregar las rutas del controlador en Windows 10:

  1. Haga clic derecho en el icono "Esta PC" y seleccione "Propiedades" ingrese la descripción de la imagen aquí

  2. Haga clic en "Configuración avanzada del sistema"

  3. Haga clic en "Variables de entorno" en la parte inferior de la pantalla
  4. En la sección "Variables de usuario", resalte "Ruta" y haga clic en "Editar"
  5. Agregue las rutas a sus variables haciendo clic en "Nuevo" y escribiendo la ruta del controlador que está agregando y presionando enter.
  6. Una vez que haya terminado de ingresar en la ruta, haga clic en "Aceptar"
  7. Siga haciendo clic en "Aceptar" hasta que haya cerrado todas las pantallas
Russ Thomas
fuente
0

Visite Gecko Driver obtenga la url para el controlador gecko en la sección Descargas.

Clone este repositorio https://github.com/jackton1/script_install.git

cd script_install

correr

./installer --gecko-driver https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.25.0-linux64.tar.gz
jackotonye
fuente
0
  1. asegúrese de tener la versión correcta del controlador (geckodriver), x86 o 64.
  2. asegúrese de verificar el entorno correcto, por ejemplo, el trabajo se está ejecutando en un Docker, mientras que el entorno está marcado es el sistema operativo host
Wen
fuente
0

para mí fue suficiente instalar geckodriver en el mismo entorno:

$ brew install geckodriver

y el código no fue cambiado:

from selenium import webdriver
browser = webdriver.Firefox()
Olesya M
fuente
0

Para agregar mis 5 centavos, también es posible hacer echo PATH(Linux) y simplemente mover geckodriver a la carpeta de su agrado. Si el destino es una carpeta del sistema (no entorno virtual), el controlador se vuelve accesible globalmente.

Arameo
fuente