Ich fragte mich, ob jemand irgendwelche Ideen hat, wie ich herausfinden konnte, warum ich scheinen kann, Firefox durch Selen Webdriver laufen zu bekommen. Was passiert, ist, wenn ich laufe:Warum Firefox wird nicht unter Selen starten 2 Webdriver auf redhat 5.6
self.driver=webdriver.Firefox()
ich einen leeren Dialog auf meinem Desktop zu bekommen. Ich laufe auf Redhat 5.6 und meine Selen Version ist 2.21.3. Ich gedebuggt den Code so weit ich gehen kann und von dem, was ich den Code bestimmen kann, friert nach dem leeren Dialog auf dem folgenden Code innerhalb der firefox_binary Modul Erziehung:
Popen([self._start_cmd, "-slient"], stdout=PIPE, stderr=STDOUT, env=self._filefox_env).wait()
ich eine cmd Aufforderung geöffnet und manuell führte den oben genannten Befehl und kein solcher leerer Dialog erscheint. Das würde mich denken lassen, dass sein kein Firefox-Fehler ist. Ich kann nicht finden, wo der Fehler für dieses erscheinen würde. Irgendwelche Ideen?
Update
ich installiert CentOS 6 und installiert Firefox 10.0.6 und Selen WebDriver mit dieser Version
Update
Abgesehen davon CentOS 6 ich dieses Problem müssen auch gearbeitet auf Redhat gelöst werden, so hier sind mehr Details und was ich gefunden habe. Ich werde ein Kopfgeld darauf setzen, wie es gelöst werden muss:
Ich grub ein wenig mehr auf und fand, dass das Problem mit Selen ist, das eine 32-Bit-lib verwendet. Ich habe Selen Version 2.25.0 auf Redhat Enterprise Linux Server Version 5.6 (x86_64) mit Firefox ESR 10.0.6 (64 Bit). änderte ich die _start_from_profile_path Methode in der firefoxBinary Klasse zu sehen, wo das Problem liegt:
p=open("/tmp/ffoutput.txt", "w+")
Popen([self._start_cmd, "-silent"], stdout=p, stderr=STDOUT, env=self._firefox_env).communicate()
und ich tailed /tmp/ffoutput.txt fand ich, dass Selen eine 32-Bit-lib zu verwenden versucht:
Failed to dlopen /usr/lib/libX11.so.6
dlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32
Diese Nachricht tritt kontinuierlich auf und Firefox bleibt mit einem leeren Dialog hängen. Ich googelte dieses Problem und fand einige Leute, die sich beschweren, aber keine Lösungen, die funktionierten (ich versuchte, die 64-Bit-lib an die 32-Bit-lib-direktive zu verschieben, nachdem ich die 32-Bit-lib verschoben hatte/null aber das hat nichts gelöst).
Keine Ausnahme, kein Protokoll? Huh. Hat es jemals funktioniert, oder ist dies der erste Versuch, FF über WebDriver zu starten? Könnten Sie versuchen, Firefox zu starten, indem Sie einen Pfad zum Konstruktor angeben? –
Es ist mein erstes Mal auf einer Redhat-Box. Ich hatte es auf einer Windows-Box laufen. Ich überprüfte self._start_cmd und fand, dass es der genau richtige Pfad zu Firefox ist.Wie ich schon sagte, habe ich unter Debug überprüft, welcher Befehl verwendet wurde und ich fand es/usr/bin/firefox -silent. Ich habe das in einem Terminal ausgeführt und keinen Fehler bekommen. Ich lief auch/usr/bin/firefox (ohne die -slient) und Firefox erscheint. Beim Webdriver Benutzer öffnet sich der oben genannte Code Firefox nicht und ein leerer Dialog erscheint im Red Hat Desktop. – amadain
Es wurde nichts zu/var/log/messages hinzugefügt, um mir irgendwas zu sagen (wo Firefox seine Protokollierung ablegt). – amadain