2012-05-21 13 views
7

Herhangi birinin, neden selenium webdriver üzerinden çalışan firefox'unun neden göründüğüne dair herhangi bir fikri olup olmadığını merak ediyorum. neden firefox, selenyum 2 webdriver altından başlayamaz 5.6

self.driver=webdriver.Firefox() 

benim masaüstünde boş bir diyalog olsun: Ne olur ben çalıştırdığınızda olduğunu. Redhat 5.6 ve üzerinde çalışıyorum selenyum sürümüm 2.21.3.

Popen([self._start_cmd, "-slient"], stdout=PIPE, stderr=STDOUT, env=self._filefox_env).wait() 

Bir cmd istemi açtı ve: Ben kadarıyla ben gidip ben kodu belirleyebilir ne firefox_binary modülü içinde aşağıdaki kodu boş iletişim yetiştirme sonra donar gibi kod debug Yukarıda belirtilen komut 'u elle çalıştırdı ve boş bir iletişim kutusu görünmez. Bu bana bir firefox hatası olmadığını düşünmeme sebep olur. Bunun için hatanın nerede olduğunu bulamıyorum görünür. Herhangi bir fikir?

güncelleme

CentOS 6 yüklü ve

CentOS 6 kullanarak Kenara güncelleme

Ben de bu sorunu gerektiğini sürümü ile çalıştı webdriver firefox 10.0.6 ve selenyum yüklü Redhat üzerinde çözülmeli, böylece daha fazla ayrıntı ve ne buldum. Çözülmesi gereken bir lütuf koyarım:

Bundan biraz daha fazla kazdım ve sorunun 32 bit lib kullanarak selenyumda olduğunu gördüm. Firefox ESR 10.0.6 (64 bit) kullanarak Redhat Enterprise Linux Server sürüm 5.6 (x86_64) sürümünde 2.25.0 sürümü var.

p=open("/tmp/ffoutput.txt", "w+") 
Popen([self._start_cmd, "-silent"], stdout=p, stderr=STDOUT, env=self._firefox_env).communicate() 

ve ben o selenyum 32 bitlik lib kullanmaya çalışıyor bulundu /tmp/ffoutput.txt kuyruklu:

sorun burada yatıyor görmeyi firefoxBinary sınıfta _start_from_profile_path yöntemini değiştirdi
Failed to dlopen /usr/lib/libX11.so.6 
dlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32 

Bu ileti sürekli olarak oluşur ve firefox boş bir iletişim kutusuyla birlikte askıda kalıyor. Ben bu sorun googled ve bazı insanlar şikayet ama hiçbir çözüm işe yaramadı (Ben 32 bit lib taşıdıktan sonra 32 bit lib dir 64 bit lib softlinking denedim ama bu geko çökmesine neden oldu, ben/dev için sürekli hataları göndermek çalıştı/null ancak bu hiçbir şeyi çözmedi).

+0

İstisna yok, kayıt yok mu? Huh. Hiç çalışıyor muydu, yoksa bu ilk kez WebDriver üzerinden FF'yi çalıştırmaya çalışıyor mu? Firefox'u kurucuya bir yol sağlayarak başlatmayı deneyebilir misiniz? –

+0

Benim ilk kez bir redhat kutusunda. Pencerede koşuyordum. Self._start_cmd dosyasını kontrol ettim ve firefox’un doğru yolu olduğunu anladım.dediğim gibi, hangi komutun kullanılmakta olduğunu kontrol ettim ve/usr/bin/firefox -silent olduğunu tespit ettim. Bunu bir terminalde koştum ve hata almadım. Ayrıca/usr/bin/firefox (-slient olmadan) çalıştırdım ve firefox belirir. Webdriver kullanıcısı, yukarıda bahsedilen kod firefox açılmaz ve redhat masaüstünde boş bir iletişim kutusu görüntülenir. – amadain

+0

/var/log/mesajlarına herhangi bir şey söyleyecek hiçbir şey yok (firefox günlüğünü kaydeder). – amadain

cevap

3

Eğer Selenyum http://code.google.com/p/selenium/issues/detail?id=2852

yılında 64Bit Linux dağıtımlarının etrafında çalışmalarını rapor bu konuya bahsediyorsanız bu komutları verecek olan:

sudo mv /usr/lib/libX11.so.6 /usr/lib/libX11.so.6.old 
sudo ln -s /usr/lib64/libX11.so.6.3.0 /usr/lib/libX11.so.6 

Bu

benim kutuyu benim için çalıştı.

+0

2. güncellemeden "32 bit lib'i hareket ettirdikten sonra 64 bit lib'in 32 bit lib dizinine softlink yapmasını denedim ancak bu da geko'nun çökmesine neden oldu", bu yüzden maalesef bu benim için işe yaramadı – amadain