Selenium: Firefox Profil istisnası Profili yükleyemiyor


96

Başına bu önceki soruya ben sürümüne 2.0.1 selenyum güncellenmiş Ama şimdi profil dosyaları altında var olsa bile başka hata var /tmp/webdriver-py-profilecopy:

  Dosya "/home/sultan/Repository/Django/monitor/app/request.py", satır 236, performans
    browser = Firefox (profil)
  Dosya "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", satır 46, __init__ içinde
    self.binary, zaman aşımı),
  Dosya "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", satır 46, __init__ içinde
    self.binary.launch_browser (self.profile)
  Launch_browser'da dosya "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", satır 44,
    self._wait_until_connectable () 
  Dosya "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", satır 87, _wait_until_connectable
    WebDriverException'ı yükseltin ("Profil yüklenemiyor. Profil Dir:% s"% self.profile.path)
selenium.common.exceptions.WebDriverException: Profil yüklenemiyor. Profil Yönü: / tmp / webdriver-py-profilcopy

Yanlış olan ne? Bu sorunu nasıl çözebilirim?

Yanıtlar:


132

Güncelleme:

Selenium ekibi son sürümde düzeltildi. Hemen hemen tüm ortamlar için düzeltme şudur:

pip kurulum -U selenyum

Hangi sürümde düzeltildiği belli değil (görünüşe göre r13122 ), ancak kesinlikle 2.26.0 (güncelleme sırasında geçerli) ile düzeltildi.


Bu hata, _wait_until_connectable'ın zaman aşımına uğradığı anlamına gelir, çünkü herhangi bir nedenle kod, firefox'a yüklenen webdriver uzantısına bağlanamaz.

Bu hatayı aldığım yerde selenyum için bir hata bildirdim çünkü bir proxy kullanmaya çalışıyorum ve profildeki 4 yapılandırılmış değişiklikten yalnızca 2 tanesi firefox tarafından kabul edildi, bu nedenle proxy ile konuşmak için yapılandırılmamış uzantı. Bunun neden olduğundan emin değilim ...

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


3
sudoKök olarak oturum açmadıysanız bir eklenmesi gerekir. Her neyse, bu bir cankurtarandı! Teşekkürler!!
Abhranil Das

Evet, WebDriverException'ın düzeltilmesine yardımcı olur: Mesaj: Profil yüklenemiyor.
tom joy

5
@AbhranilDas Eğer sudobir virtualenv(muhtemelen kullanmanız gereken) kullanıyorsanız ihtiyacınız yoktur .
Kos

7
Hayır, bu çözüm Firefox 45.0b ve en son Selenium (2.5.1) ile çalışmıyor
Alex GP

1
@ AlexG.P. Bu sorunun cevabını ilk olarak 4,5 yıl önce yazmıştım. Yeni bir soru sormaya değecek kadar zaman geçtiğinden şüpheleniyorum. Bunu yaparsanız, lütfen bu soruya bir referans ekleyin ve: a) yukarıda verdiğiniz Firefox ve Selenium sürümleri; b) işletim sisteminiz; c) pip sürümünüz. Sorununuzun pip sürümüyle ilgili olabileceğini tahmin ediyorum, çünkü bu son 5 yılda değişti.
Rachel

31

Ubuntu'yu 12.04'e yükselttikten sonra da aynı sorunu yaşadım.

Sorun paket tarafındaydı ve kitaplığın son sürümünde düzeltildi. Selenyum kitaplığını güncellemeniz yeterli. Hemen hemen tüm Python ortamları için bu:

pip install -U selenium

Nedenini bilmiyorum ama selenyum 2.28.0'a sahip olduğum için Ubuntu'da FireFox 22.0 ve 23.0 ile aynı sorunu yaşıyorum. Sadece firefox'u 18.0'a düşürmek benim için iyi çalışıyor (diğer sürümleri asla kontrol etmedim).
Dmitry

26

FF 32.0 ve Selenium selenium-2.42.1-py2.7.egg ile aynı problemle karşılaştım. Selenyum güncellemeye çalıştım, ancak zaten en son sürüm. Çözüm, Firefox'u sürüm 30'a düşürmekti. İşlem şu şekildedir:

#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

Bu, tüm sorunları çözdü ve bu kombinasyon daha iyi çalışıyor!


bu benim kurulumumu düzeltti !!
Macumbaomuerte

Mac'imde Firefox'u nasıl düşürürüm? Mactop'umda 'virtualenv'de hurda / selenyum kullanıyorum ve aynı hatayı alıyorum. Mac'imde düşürürsem, düzelteceğini düşünüyorum.
brkr

8

Jeff Hoye'nin cevabının bir uzantısı olarak , daha 'Pythonic' bir yol webdriver.firefox.firefox_profile.FirefoxProfileaşağıdaki gibi alt sınıflara ayırmak olacaktır :

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

Ardından sürücünüzü oluşturmak için:

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

5

Eğer pip install -U selenium(o benim durumumda, olmadı) çalışmıyor, bir önceki sürüme Firefox'u downgrading deneyin.

Firefox 49.0'ım vardı ve sürümün selenyum tarafından desteklendiğinden emin olmak için 45.0'a düşürdüm. O zaman mükemmel çalıştı.

İşte Firefox 45.0'a geçmenin hızlı bir yolu:

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

Bu yardımcı olur umarım.


4

Cygwin'den webdriver çalıştırıyorsanız, sorun profil yolunun hala POSIX biçiminde olması ve bu da Windows programlarının kafasını karıştırır. Çözümüm, onu Windows formatına dönüştürmek için cygpath kullanıyor.

bu dosyada / yöntemde: selenium.webdriver.firefox.firefox_binary.launch_browser ():

değiştirin:

    self._start_from_profile_path(self.profile.path)

ile:

    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)

Python benim birincil programlama dilime yakın bile olmadığı için, birisi daha pitonik bir yaklaşım önerebilirse belki onu dağıtıma itebiliriz. Cygwin'de kutudan çıkar çıkmaz çalışsaydı kesinlikle kullanışlı olurdu.


3

Aynı sorunu yaşadım ve bunun selenyum / Firefox'un yanlış kombinasyonu olduğuna inandım. .Mozilla / klasör izinlerime yalnızca kök kullanıcı tarafından erişilebildiği ortaya çıktı. Yapmak chmod 770 ~/.mozilla/hile yaptı. Daha fazla sorun gidermeden önce sorunun bu olmadığından emin olmanızı öneririm.


1

pip install -U selenium

Firefox 34.0.5 (Dec 1, 2014)Sorunumu çözmek 2.42.1için Selenium ile aynı sorunu yaşadım ve yükselttim 2.44.0.

Ancak, o zamandan beri bu sorunu tekrar gördüm, sanırım 2.44.0 ve başka bir yükseltme sorunu çözdü. Bu yüzden, sadece kaldırıp yeniden kurarak düzeltilip düzeltilemeyeceğini merak ediyorum. Eğer öyleyse, bunun temeldeki sorunun ne olduğunu göstereceğinden emin değilim.


Windows'ta 2.44 ve ff35 ile aynı sorunu yaşıyorum
pylover

0

Selenium 2.53 ve firefox 55.0 sürümünü kullanıyordum. Bu sorunu eski firefox sürümünü (46.0.1) yükleyerek çözdüm çünkü selenium 2.53 firefox sürüm 47.0 ve üzeri için çalışmayacaktır.


-1

Bu uygun bir çözüm değil ama benim için işe yaradı, eğer biri gelişebilirse bunu bilmekten memnuniyet duyarım. Sadece kök olarak benim komut dosyasını çalıştırın: sudo python myscript.py. Sanırım profili değiştirerek çözebilirim varsayılan dosya veya dizin işe yarayabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.