Il selenio usando Python - L'eseguibile di Geckodriver deve essere in PERCORSO


435

Sono nuovo nella programmazione e ho iniziato Pythoncirca 2 mesi fa e sto esaminando il testo di Python di Automate the Boring di Sweigart . Sto usando IDLE e ho già installato il modulo di selenio e il browser Firefox. Ogni volta che ho provato a eseguire la funzione webdriver, ottengo questo:

from selenium import webdriver
browser = webdriver.Firefox()

Eccezione :-

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. 

Penso di dover impostare la strada geckodriverma non so come, quindi qualcuno può dirmi come farei?


2
Per favore, vedi la mia risposta su una domanda simile qui
Andrew,

Sto inserendo geckodriver.exe nella directory Python / Python35, quindi ha lo stesso percorso e sto riscontrando ancora più problemi.
tadm123,

81
Su Mac:brew install geckodriver
Nostalg.io

1
Ho scoperto che eseguendolo attraverso il browser Chrome è un po 'più veloce rispetto a Firefox, dovrai solo scaricare il chromedriverper questo.
tadm123,

Nota: c'è Testcafe che ha ottenuto di recente un open source. Non richiede plugin del browser, sono integrati. Volevo usare il selenio ma sembra un'alternativa interessante.
Ehvince,

Risposte:


355

selenium.common.exceptions.WebDriverException: messaggio: l'eseguibile "geckodriver" deve trovarsi nel PERCORSO.

Prima di tutto dovrai scaricare l'ultimo geckodriver eseguibile da qui per eseguire l'ultimo firefox usando il selenio

In realtà i bind client Selenium tentano di individuare l' geckodrivereseguibile dal sistema PATH. Sarà necessario aggiungere la directory contenente l'eseguibile al percorso di sistema.

  • Sui sistemi Unix puoi fare quanto segue per aggiungerlo al percorso di ricerca del tuo sistema, se stai usando una shell compatibile con bash:

    export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
  • Su Windows sarà necessario aggiornare la variabile di sistema Path per aggiungere manualmente il percorso completo della directory al geckodriver eseguibile o alla riga di comando (non dimenticare di riavviare il sistema dopo aver aggiunto il geckodriver eseguibile nel PATH del sistema per rendere effettive) . Il principio è lo stesso di Unix.

Ora puoi eseguire il codice come fai come di seguito: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exceptions.WebDriverException: messaggio: posizione binaria del browser prevista, ma impossibile trovare il binario nella posizione predefinita, nessuna funzionalità "moz: firefoxOptions.binary" fornita e nessun flag binario impostato sulla riga comandi

L'eccezione afferma chiaramente che hai installato Firefox in un'altra posizione mentre Selenium sta cercando di trovare Firefox e lanciarlo dalla posizione predefinita ma non è riuscito a trovarlo. È necessario fornire in modo esplicito la posizione binaria installata di Firefox per avviare Firefox come di seguito: -

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)

8
Grazie, ma ho impostato il mio geckodriver.exesulla C:\Python\Python35\seleniumdirectory e ho impostato il percorso come hai descritto, ma mi dà l'errore di seguito:
tadm123

4
Grazie @Saurabh Gaur, ora funziona. Ho aggiunto manualmente il percorso di Firefox alle variabili di sistema e tutto funziona. Ci vuole un po 'di tempo per il lancio, ma immagino sia normale. Grazie!
tadm123,

3
Ho ricevuto l'errore "WebDriverException: Messaggio: Impossibile avviare il browser: autorizzazione negata" all'inizio quando ho iniziato a specificare il percorso binario di firefox, ma il riavvio del computer (Windows 10) ha risolto il problema. - Nel caso in cui qualcun altro stia colpendo lo stesso mio problema.
NoSuchElephantException,

3
Cos'è il binario? Significa eseguibile?
Utente

12
Oltre a questa risposta, vorrei espandere l'impostazione di ambiente PATHin unix. Puoi impostarlo nel codice poiché non ti serve a livello di sistema: os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' O semplicemente mantieni il geckodriver binario nella directory che è già nel tuo percorso:mv geckodriver /usr/local/bin
dsalaj

161

Questo mi ha risolto.

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')

Se si ottiene un'autorizzazione errata, provare a rimuovere [r '] dal percorso solo "excecutable_path =' path \ to \ your'diretory '"
Darius

@adityarawat su quale sistema operativo sei?
Nesa

ma ora sto ottenendo OSError invece di autorizzazioni sbagliate. In qualche modo sono riuscito a copiare geckodriver in / usr / local / bin. ma ora questo nuovo errore mi sta uccidendo
aditya rawat

@adityarawat puoi scaricare geckodriver indipendentemente da qui: github.com/mozilla/geckodriver/releases estrarlo con tar e renderlo eseguibile con chmod + x, non deve essere in / usr / local / bin, devi solo per specificare il tuo percorso
Nesa

solo per essere chiari ho scaricato il file arm7hf.tar e l'ho estratto anch'esso e l'ho aggiunto al percorso usando il comando export PATH=$PATH:geckodriver(viene estratto in Desktop). Ma non ha aiutato neanche. Ricevo ancora OSError [errno 8]
aditya rawat,

122

questo passo RISOLTO per me su Ubuntu Firefox 50.

  1. Scarica geckodriver

  2. Copia geckodriver in / usr / local / bin

NON è necessario aggiungere

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)

Nel tuo codice non puoi aggiungere la variabile di capacità
Andrea Perdicchia il

Sapresti sapere come impostare la directory di download per Firefox? Ho aggiunto la seguente domanda Imposta preferenze di Firefox . Qualsiasi aiuto sarebbe molto apprezzato.
d84_n1nj4,

In Debian o Ubuntu devi usare il comando apt per installare Firefox. Per Windows non ho idea di scusarmi
Andrea Perdicchia il

Grazie. Dopo l'applicazione di questa risposta, ho preso ulteriormente questa soluzione per la gestione di un problema di follow-up: stackoverflow.com/questions/43713445/...
HackNone

Grazie, Pycharm non stava trovando geckodriver sebbene fosse in casa e nella cartella del progetto stesso, ma dopo averlo spostato in / usr / local / bin ha funzionato perfettamente
Ronald Das,

32

La risposta di @saurabh risolve il problema, ma non spiega perché automatizzare la noiosa roba con Python non includa questi passaggi.

Ciò è causato dal fatto che il libro si basa sul selenio 2.xe il driver Firefox per quella serie non ha bisogno del driver gecko. L'interfaccia di Gecko per guidare il browser non era disponibile durante lo sviluppo del selenio.

L' ultima versione della serie selenio 2.x è 2.53.6 (vedere ad esempio questa risposta , per una visione più semplice delle versioni).

La pagina della versione 2.53.6 non menziona affatto il geco. Ma dalla versione 3.0.2 la documentazione afferma esplicitamente che è necessario installare il driver gecko.

Se dopo un aggiornamento (o l'installazione su un nuovo sistema), il tuo software che ha funzionato bene prima (o sul tuo vecchio sistema) non funziona più e hai fretta, aggiungi la versione di selenio nel tuo virtualen facendo

pip install selenium==2.53.6

ma ovviamente la soluzione a lungo termine per lo sviluppo è quella di installare un nuovo virtualenv con l'ultima versione di selenio, installare il driver gecko e verificare se tutto funziona ancora come previsto. Ma il bump della versione principale potrebbe introdurre altre modifiche all'API che non sono coperte dal tuo libro, quindi potresti voler rimanere con il selenio precedente, fino a quando non sei abbastanza sicuro di poter correggere eventuali discrepanze tra l'API selenium2 e selenium3.


2
vorrei che questa fosse la risposta migliore
sudo-nim,

1
questo mi ha aiutato, grazie Anthon
ghost21blade il

25

Su macOS con Homebrew già installato puoi semplicemente eseguire il comando Terminale

$ brew install geckodriver

Poiché homebrew ha già esteso l'estensione PATH, non è necessario modificare alcun script di avvio.


@roskakori L'ho fatto e si è installato correttamente ma sto ancora ottenendo lo stesso errore
JKC

Questo l'ha fatto per me, grazie. Utilizzo di Firefox 72.0.2 e Selenium 3.141.0
Sam

17

Per configurare geckodriver per Selenium Python:

Deve impostare il percorso geckodriver con FirefoxDriver come sotto codice:

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

Scarica geckodriver per il tuo sistema operativo adatto (da https://github.com/mozilla/geckodriver/releases ) -> Estrai in una cartella a tua scelta -> Imposta il percorso correttamente come indicato sopra

Sto usando Python 3.6.2 e Selenium WebDriver 3.4.3 in Windows 10.

Un altro modo per impostare geckodriver:

i) Basta incollare geckodriver.exe in / Python / Scripts / (Nel mio caso la cartella era: C: \ Python36 \ Scripts)
ii) Ora scrivi il codice semplice come di seguito:

self.driver = webdriver.Firefox()

17

Se stai usando Anaconda , tutto ciò che devi fare è attivare il tuo ambiente virtuale e quindi installare geckodriver usando il seguente comando :

    conda install -c conda-forge geckodriver

Sì, installa geckodriver, ma l'errore pycharm rimane lo stesso.
WebComer

Ciao, ho provato molte cose e questa è l'unica cosa che ha funzionato per me :-) grazie
tezzaaa

12

Ubuntu 18.04+ e la versione più recente di geckodriver

Questo dovrebbe funzionare anche con altre varietà * 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/

Per l'aggiornamento mac a:

geckodriver-$GV-macos.tar.gz

12

Vedo che le discussioni parlano ancora del vecchio modo di impostare geckodriver scaricando il binario e configurando il percorso manualmente.

Questo può essere fatto automaticamente usando webdriver-manager

pip install webdriver-manager

Ora il codice sopra nella domanda funzionerà semplicemente con la modifica seguente,

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

2
Questo ha funzionato per me. Grazie!
igorkf,

Safari o Internet Explorer hanno un gestore driver simile?
Mischief_Monkey

11

Il modo più semplice per Windows!
Scarica l'ultima versione di geckodriverda qui . Aggiungi il file geckodriver.exe alla directory python (o qualsiasi altra directory già presente PATH). Questo dovrebbe risolvere il problema (testato su Windows 10)


Windows non è il peggiore. Grazie per la rapida soluzione.
AJ_

Questa è di gran lunga la soluzione più semplice !! Non è nemmeno necessario riavviare il computer!
Olenscki,

8

Passaggi per MAC:

La soluzione semplice è scaricare GeckoDriver e aggiungerlo al PERCORSO del sistema. È possibile utilizzare uno dei due approcci:

Metodo breve:

1) Scarica e decomprimi Geckodriver .

2) Menziona il percorso durante l'avvio del driver:

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

Metodo lungo:

1) Scarica e decomprimi Geckodriver .

2) Apri .bash_profile. Se non si è ancora creato, è possibile farlo utilizzando il comando: touch ~/.bash_profile. Quindi aprilo usando:open ~/.bash_profile

3) Considerando che il file GeckoDriver è presente nella cartella Download, è possibile aggiungere le seguenti righe al .bash_profilefile:

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

Con ciò stai aggiungendo il percorso di GeckoDriver al tuo PERCORSO di sistema. Questo dice al sistema in cui si trova GeckoDriver quando si eseguono gli script Selenium.

4) Salvare .bash_profilee forzare l'esecuzione. In questo modo i valori vengono caricati immediatamente senza riavviare. Per fare ciò puoi eseguire il seguente comando:

source ~/.bash_profile

5) Questo è tutto. Hai fatto!. Ora puoi eseguire lo script Python.


1
Sono stato in grado di scaricare geckodrivercon Homebrew: brew install geckodrivere quindi avviare Firefox tramite:driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver")
Winterflags

7

Alcuni input / chiarimenti aggiuntivi per i futuri lettori di questa discussione:

Quanto segue è sufficiente come risoluzione per Windows 7, Python 3.6, selenio 3.11:

La nota di @ dsalaj in questo thread precedente per Unix è applicabile anche a Windows; armeggiare con il PATH env. la variabile a livello di Windows e il riavvio del sistema Windows possono essere evitati.

(1) Scarica geckodriver (come descritto in questa discussione in precedenza) e posiziona geckdriver.exe (decompresso) in X: \ Cartella \ di \ tua \ scelta

(2) Esempio di codice 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

Note: (1) Potrebbero essere necessari circa 10 secondi affinché il codice sopra riportato apra il browser Firefox per l'URL specificato.
(2) La console di Python mostrerebbe il seguente errore se non c'è già un server in esecuzione all'URL specificato o sta servendo una pagina con il titolo contenente la stringa "Django": selenium.common.exceptions.WebDriverException: Messaggio: pagina di errore raggiunta: about :? neterror e = connectionFailure & u = http% 3A // localhost% 3A8000 / & c = UTF-8 & f = regolare & d = Firefox% 20can% E2% 80% 9


Grazie, ho provato tutte le altre soluzioni ma solo le tue hanno funzionato sul mio Windows!
pso

4

In realtà ho scoperto che puoi usare l'ultimo geckodriver senza metterlo nel percorso di sistema. Attualmente sto 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

Sto eseguendo un VirtualEnv (che gestisco usando PyCharm, suppongo che usi Pip per installare tutto)

Nel seguente codice posso usare un percorso specifico per il geckodriver usando il paramater eseguibile_path (ho scoperto questo dando un'occhiata in Lib \ site-pacchetti \ selenium \ webdriver \ firefox \ webdriver.py). Nota: ho il sospetto che l'ordine degli argomenti dei parametri quando si chiama il webdriver sia importante, motivo per cui il percorso eseguibile è l'ultimo nel mio codice (seconda riga all'estrema destra)

Potresti anche notare che utilizzo un profilo firefox personalizzato per aggirare il problema sec_error_unknown_issuer in cui ti imbatterai se il sito che stai testando ha un certificato non attendibile. vedi Come disabilitare l'avviso di connessione non attendibile di Firefox utilizzando Selenium?

Dopo un'indagine è emerso che il driver Marionette è incompleto e ancora in corso e che non funzionava alcuna impostazione di varie funzionalità o opzioni di profilo per il licenziamento o l'impostazione dei certificati. Quindi era più semplice usare un profilo personalizzato.

Comunque ecco il codice su come ho fatto funzionare il geckodriver senza essere sul percorso:

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

Ho ottenuto SyntaxError: (errore unicode) il codec 'unicodeescape' non può decodificare i byte ... E devo cambiare il percorso gecko in epath = r'C: \ Users \ step_ \ Documents \ mtg_buyer \ geckodrivers \ geckodriver.exe '. Forse il motivo è che sto usando un Windows 10 cinese?
Endle_Zhenbo,

3

Sto usando Windows 10 e questo ha funzionato per me:

  1. Scarica geckodriver da qui . Scarica la versione giusta per il computer che stai utilizzando
  2. Decomprimi il file che hai appena scaricato e taglia / copia il file ".exe" che contiene
  3. Passare a C: {la cartella principale di Python}. Il mio era C: \ Python27. Incolla il file geckodriver.exe in questa cartella.
  4. Riavvia il tuo ambiente di sviluppo.
  5. Prova a eseguire di nuovo il codice, dovrebbe funzionare ora.

Grazie per aver menzionato la necessità di riavviare l'ambiente di sviluppo.
Deep

3

Prendi in considerazione l'installazione di un Firefox containerizzato:

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

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

2

È davvero piuttosto triste che nessuno dei libri pubblicati su Selenium / Python e la maggior parte dei commenti su questo problema tramite Google non spieghino chiaramente la logica del percorso per configurarlo su Mac (tutto è Windows !!!!). Tutti i pickup al "dopo" hai la configurazione del percorso (nella mia mente, la via d'uscita economica!). Quindi, per i tuoi meravigliosi utenti Mac, usa quanto segue per modificare i file del percorso bash:

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

Quindi aggiungi un percorso simile a questo .... * # Impostazione PATH per geckodriver PATH = “/ usr / bin / geckodriver: $ {PATH}” export PATH

Impostazione del PERCORSO per Selenium Firefox

PERCORSO = “~ / Users / yourNamePATH / VEnvPythonInterpreter / lib / python2.7 / site-pacchetti / selenium / webdriver / firefox /: $ {PATH}” PERCORSO esportazione

Impostazione PATH per eseguibile sul driver firefox

PERCORSO = “/ Users / tuonomePATH / VEnvPythonInterpreter / lib / python2.7 / site-pacchetti / selenio / webdriver / common / service.py: $ {PATH}" export PATH *

Questo ha funzionato per me. La mia preoccupazione è quando la comunità Selenium Windows inizierà a giocare al vero gioco e includerà noi utenti Mac nella loro arrogante iscrizione al club.


2

Il selenio risponde a questa domanda nel loro 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.

In pratica basta scaricare il geckodriver, decomprimerlo e spostare l'eseguibile nella cartella / usr / bin


Questa citazione contiene le indicazioni che hanno funzionato su Linux Mint 18.
Elliot Robert,

2

Per gli utenti di Windows

usa il codice originale così com'è:

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

quindi scaricare il driver da: mozilla / geckodriver

Posizionalo in un percorso fisso (in modo permanente) .. come esempio, lo inserisco in:

C: \ Python35

Quindi vai alle variabili di ambiente del sistema, nella griglia di "Variabili di sistema" cerca la variabile Path e aggiungi:

; C: \ Python35 \ geckodriver

geckodriver, non geckodriver.exe .


geckodriver, non geckodriver.exe.
Saurabh Chandra Patel,

1

Su Raspberry Pi ho dovuto creare dal driver ARM e impostare il geckodriver e il percorso di accesso in:

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"):

1

Se usi l'ambiente virtuale e win10 (forse è per altri sistemi), devi solo inserire geckodriver.exe nella seguente cartella nella directory dell'ambiente virtuale:

... \ my_virtual_env_directory \ Scripts \ geckodriver.exe


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

questo ti porterà il percorso al tuo gekodriver.exe su Windows

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

0

Mac 10.12.1 python 2.7.10 questo lavoro per me :)

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

0

Sto usando Windows 10 e Anaconda2. Ho provato a impostare la variabile del percorso di sistema ma non ho funzionato. Quindi ho semplicemente aggiunto il file geckodriver.exe alla cartella Anaconda2 / Scripts e ora tutto funziona alla grande. Per me il percorso era: -

C: \ Users \ Bhavya \ Anaconda2 \ Scripts


0

Se si desidera aggiungere i percorsi dei driver su Windows 10:

  1. Fare clic destro sull'icona "Questo PC" e selezionare "Proprietà" inserisci qui la descrizione dell'immagine

  2. Fai clic su "Impostazioni di sistema avanzate"

  3. Fai clic su "Variabili d'ambiente" nella parte inferiore dello schermo
  4. Nella sezione "Variabili utente" evidenziare "Percorso" e fare clic su "Modifica"
  5. Aggiungi i percorsi alle tue variabili facendo clic su "Nuovo" e digitando il percorso per il driver che stai aggiungendo e premendo invio.
  6. Dopo aver inserito il percorso, fai clic su "OK"
  7. Continua a fare clic su "OK" fino a quando non hai chiuso tutte le schermate


0
  1. assicurati di avere la versione corretta di driver (geckodriver), x86 o 64.
  2. assicurati di controllare l'ambiente giusto, ad esempio il lavoro è in esecuzione in una Docker, mentre l'ambiente è controllato dal sistema operativo host

0

per me è stato sufficiente installare geckodriver nello stesso ambiente:

$ brew install geckodriver

e il codice non è stato modificato:

from selenium import webdriver
browser = webdriver.Firefox()

0

Per aggiungere i miei 5 centesimi, è anche possibile fare echo PATH(Linux) e spostare Geckodriver nella cartella di tuo gradimento. Se una cartella di sistema (non un ambiente virtuale) è la destinazione, il driver diventa accessibile a livello globale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.