Мне было интересно, есть ли у кого-нибудь какие-либо идеи о том, как я могу узнать, почему мне кажется, что Firefox работает через веб-драйвер selenium. Что происходит, когда я запускаю:
self.driver=webdriver.Firefox()
Я получаю пустой диалог на моем рабочем столе. Я работаю на Redhat 5.6, а моя версия селена — 2.21.3. Я отлаживал код, насколько мог, и из того, что я могу определить, код зависает после появления пустого диалогового окна в следующем коде в модуле firefox_binary:
Popen([self._start_cmd, "-slient"], stdout=PIPE, stderr=STDOUT, env=self._filefox_env).wait()
Я открыл приглашение cmd и вручную запустил вышеупомянутую команду, и такого пустого диалогового окна не появилось. Это заставило бы меня думать, что это не ошибка Firefox. Я не могу найти, где появится ошибка для этого. Любые идеи?
обновить
Я установил Centos 6 и установил Firefox 10.0.6, и Selenium WebDriver работал с этой версией.
обновить
Помимо использования Centos 6, мне нужно, чтобы эта проблема также была решена на RedHat, поэтому вот более подробная информация и то, что я нашел. Я назначу награду за это, так как это нужно решить:
Я немного покопался в этом и обнаружил, что проблема связана с селеном, использующим 32-битную библиотеку. У меня есть селен версии 2.25.0 на сервере Redhat Enterprise Linux Server версии 5.6 (x86_64) с использованием Firefox ESR 10.0.6 (64-разрядная версия). Я изменил метод _start_from_profile_path в классе firefoxBinary, чтобы увидеть, в чем проблема:
p=open("/tmp/ffoutput.txt", "w+")
Popen([self._start_cmd, "-silent"], stdout=p, stderr=STDOUT, env=self._firefox_env).communicate()
и я просмотрел /tmp/ffoutput.txt и обнаружил, что селен пытается использовать 32-битную библиотеку:
Failed to dlopen /usr/lib/libX11.so.6
dlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32
Это сообщение появляется постоянно, и Firefox зависает с отображением пустого диалогового окна. Я погуглил эту проблему и обнаружил, что некоторые люди жалуются, но никаких решений не сработало (я попытался связать 64-битную библиотеку с директорией 32-битной библиотеки после перемещения 32-битной библиотеки, но это привело к сбою geko, я попытался отправить непрерывные ошибки в /dev /null, но это ничего не решило).