почему firefox не запускается под веб-драйвером selenium 2 на redhat 5.6

Мне было интересно, есть ли у кого-нибудь какие-либо идеи о том, как я могу узнать, почему мне кажется, что 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, но это ничего не решило).


person amadain    schedule 21.05.2012    source источник
comment
Нет исключений, нет журнала? Хм. Это когда-нибудь работало, или это ваша первая попытка запустить FF через WebDriver? Не могли бы вы попробовать запустить Firefox, указав путь к нему конструктору?   -  person Petr Janeček    schedule 21.05.2012
comment
Это мой первый раз на RedHat Box. У меня он работал на Windows Box. Я проверил self._start_cmd и обнаружил, что это правильный путь к firefox. как я уже сказал, я проверил при отладке, какая команда используется, и обнаружил, что это /usr/bin/firefox -silent. Я запустил это в терминале и не получил никакой ошибки. Я также запустил /usr/bin/firefox (без -slient), и появился firefox. Когда пользователь webdriver, вышеупомянутый код firefox не открывается, и на рабочем столе RedHat отображается пустой диалог.   -  person amadain    schedule 21.05.2012
comment
в /var/log/messages ничего не добавлено, чтобы сообщить мне что-либо (куда firefox помещает свои журналы).   -  person amadain    schedule 21.05.2012
comment
Проголосовал и отметился. Меня тоже интересует причина этого. Если ничего не помогает, попробуйте дискуссионную группу или официальный IRC — seleniumhq.org/support, можно просто быть ошибкой.   -  person Petr Janeček    schedule 21.05.2012
comment
stackoverflow лучше, чем официальный IRC, в получении ответов, кажется (из предыдущих вопросов).   -  person amadain    schedule 24.07.2012


Ответы (1)


Если вы имеете в виду эту проблему, описанную в Selenium, http://code.google.com/p/selenium/issues/detail?id=2852

Обходной путь для 64-битных дистрибутивов Linux заключается в выполнении следующих команд:

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

Это сработало для меня на моей коробке.

person Ashwin Prabhu    schedule 28.07.2012
comment
Со 2-го обновления я попытался связать 64-битную библиотеку с каталогом 32-битной библиотеки после перемещения 32-битной библиотеки, но это привело к сбою geko, поэтому, к сожалению, это не сработало для меня. - person amadain; 30.07.2012