Selenium: eccezione FirefoxProfile Impossibile caricare il profilo


96

Per questa domanda precedente ho aggiornato Selenium alla versione 2.0.1 Ma ora ho un altro errore, anche quando i file del profilo esistono sotto /tmp/webdriver-py-profilecopy:

  File "/home/sultan/Repository/Django/monitor/app/request.py", riga 236, in esecuzione
    browser = Firefox (profilo)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", riga 46, in __init__
    self.binary, timeout),
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", riga 46, in __init__
    self.binary.launch_browser (self.profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", riga 44, in launch_browser
    self._wait_until_connectable () 
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", riga 87, in _wait_until_connectable
    raise WebDriverException ("Impossibile caricare il profilo. Profile Dir:% s"% self.profile.path)
selenium.common.exceptions.WebDriverException: impossibile caricare il profilo. Profile Dir: / tmp / webdriver-py-profilecopy

Che c'è? Come posso risolvere questo problema?

Risposte:


132

Aggiornare:

Il team Selenium è stato risolto nell'ultima versione. Per quasi tutti gli ambienti la soluzione è:

pip install -U selenio

Non è chiaro in quale versione sia stato corretto (apparentemente r13122 ), ma sicuramente dalla 2.26.0 (corrente al momento dell'aggiornamento) è stato risolto.


Questo errore significa che _wait_until_connectable è in timeout, perché per qualche motivo il codice non può connettersi all'estensione webdriver che è stata caricata in Firefox.

Ho appena segnalato un errore al selenio in cui ricevo questo errore perché sto cercando di utilizzare un proxy e solo 2 delle 4 modifiche configurate nel profilo sono state accettate da Firefox, quindi il proxy non è configurato per parlare con l'estensione. Non sono sicuro del perchè questo stia succedendo...

https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/2061


3
L'aggiunta di una sudoè richiesta se non si è connessi come root. Comunque, questo è stato un vero toccasana! Grazie!!
Abhranil Das

Sì, aiuta a correggere WebDriverException: Messaggio: "Impossibile caricare il profilo.
tom joy

5
@AbhranilDas Non ti serve sudose stai usando un virtualenv(che probabilmente dovresti usare).
Kos

7
No, questa soluzione non funziona con Firefox 45.0be l'ultimo Selenium (2.5.1)
Alex GP

1
@ AlexG.P. Ho scritto per la prima volta la risposta a questa domanda 4,5 anni fa. Ho il sospetto che sia passato abbastanza tempo perché potrebbe valere la pena sollevare una nuova domanda. Se lo fai, includi un riferimento a questa domanda e: a) le versioni Firefox e Selenium che hai fornito sopra; b) il tuo sistema operativo; c) la tua versione di pip. Immagino che il tuo problema potrebbe essere correlato alla versione pip, perché è cambiata negli ultimi 5 anni.
Rachel

31

Ho avuto lo stesso problema dopo aver aggiornato Ubuntu a 12.04.

Il problema riguardava il pacchetto ed è stato risolto nell'ultima versione della libreria. Basta aggiornare la libreria del selenio. Per quasi tutti gli ambienti Python questo è:

pip install -U selenium

Non so perché, ma avendo selenio 2.28.0 ho lo stesso problema con FireFox 22.0 e 23.0 su Ubuntu. Solo il downgrade di Firefox a 18.0 funziona bene per me (non ho mai controllato altre versioni).
Dmitry

26

Ho affrontato lo stesso problema con FF 32.0 e Selenium selenium-2.42.1-py2.7.egg. Ho provato ad aggiornare il selenio, ma è già l'ultima versione. La soluzione era eseguire il downgrade di Firefox alla versione 30. Ecco il processo:

#Download version 30 for Linux (This is the 64 bit)
wget http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/30.0/linux-x86_64/en-US/firefox-30.0.tar.bz2

tar -xjvf firefox-30.0.tar.bz2
#Remove the old version
sudo rm -rf /opt/firefox*
sudo mv firefox /opt/firefox30.0
#Create a permanent link
sudo ln -sf /opt/firefox30.0/firefox /usr/bin/firefox

Questo ha risolto tutti i problemi e questa combinazione funziona meglio!


questo ha risolto il mio setup !!
Macumbaomuerte

Come eseguo il downgrade di Firefox sul mio Mac? Uso scrapy / selenium sul mio mactop su "virtualenv" e ho lo stesso errore. Penso che se effettuassi il downgrade sul mio Mac lo risolverei.
brkr

8

Come estensione alla risposta di Jeff Hoye , un modo più "pitonico" sarebbe quello di sottoclassare webdriver.firefox.firefox_profile.FirefoxProfilecome segue:

class CygwinFirefoxProfile(FirefoxProfile):
    @property
    def path(self):
        path = self.profile_dir
        # Do stuff to the path as described in Jeff Hoye's answer
        return path

Quindi, per creare il tuo driver:

driver = webdriver.Firefox(firefox_profile=CygwinFirefoxProfile())

5

Se pip install -U seleniumnon funziona (non ha funzionato, nel mio caso), prova a eseguire il downgrade di Firefox a una versione precedente.

Avevo Firefox 49.0 e sono passato a 45.0 per assicurarmi che la versione fosse supportata dal selenio. Allora ha funzionato perfettamente.

Ecco un modo rapido per eseguire il downgrade a Firefox 45.0:

sudo apt-get install firefox=45.0.2+build1-0ubuntu1

Spero che questo ti aiuti.


4

Se stai eseguendo webdriver da cygwin, il problema è che il percorso del profilo è ancora in formato POSIX che confonde i programmi Windows. La mia soluzione utilizza cygpath per convertirlo nel formato Windows.

in questo file / metodo: selenium.webdriver.firefox.firefox_binary.launch_browser ():

sostituire:

    self._start_from_profile_path(self.profile.path)

con:

    from subprocess import Popen, PIPE
    proc = Popen(['cygpath','-d',self.profile.path], stdout=PIPE, stderr=PIPE)
    stdout, stderr = proc.communicate()
    path = stdout.split('\n', 1)[0]

    self._start_from_profile_path(path)
    #self._start_from_profile_path(self.profile.path)

Poiché Python non è nemmeno vicino al mio linguaggio di programmazione principale, se qualcuno può consigliare un approccio più pitonico forse possiamo inserirlo nella distribuzione. Sarebbe sicuramente utile se funzionasse in cygwin fin da subito.


3

Ho avuto lo stesso problema e ho creduto che fosse la combinazione sbagliata di selenio / Firefox. Si è scoperto che i miei permessi .mozilla / cartella erano accessibili solo all'utente root. Fare chmod 770 ~/.mozilla/ha funzionato. Suggerirei di assicurarti che questo non sia il problema prima di risolvere ulteriormente il problema.


1

pip install -U selenium

Ho avuto lo stesso problema con Firefox 34.0.5 (Dec 1, 2014)e l'aggiornamento di Selenium da 2.42.1a ha 2.44.0risolto il mio problema.

Tuttavia, da allora ho visto di nuovo questo problema, penso con 2.44.0, e un altro aggiornamento lo ha risolto. Quindi mi chiedo se potrebbe essere risolto semplicemente disinstallando e quindi reinstallando. In tal caso, non sono sicuro di cosa indicherebbe il problema sottostante.


Ho lo stesso identico problema con 2.44 e ff35 in Windows
pylover

0

Stavo usando il selenio 2.53 e la versione 55.0 di Firefox. Ho risolto questo problema installando la versione precedente di Firefox (46.0.1) poiché il selenio 2.53 non funzionerà per la versione 47.0 e successive di Firefox.


-1

Questa non è una soluzione adeguata ma ha funzionato per me, se qualcuno può migliorare sarei felice di saperlo. Ho appena eseguito il mio script come root: sudo python myscript.py. Immagino di poter risolvere modificando il file o la directory predefinita del profilo potrebbe funzionare.

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.