Невозможно создать процесс браузера при использовании селена из python на RHEL5

Я пытаюсь использовать селен из python, но у меня возникла проблема с его запуском на сервере RHEL5.5. Кажется, я не могу запустить Firefox.

from selenium import webdriver
b = webdriver.Firefox()

На моем ноутбуке с Ubuntu это работает нормально, и он запускает окно Firefox. Когда я захожу на сервер с помощью ssh, я могу запустить firefox из командной строки и отобразить его на своем ноутбуке. Это явно firefox с сервера, так как у него есть домашняя страница RHEL5.5.

Когда я запускаю скрипт python выше на сервере (или запускаю его в ipython), скрипт зависает в webdriver.Firefox()

я тоже пробовал

from selenium import webdriver
fb = webdriver.FirefoxProfile()
fb.native_events_enabled=True
b=webdriver.Firefox(fb)

Который там тоже висит на последней строчке.

Я использую python2.7, установленный в /opt/python2.7. В установленном селене с /opt/python2.7/pip-2.7.

Я вижу процесс firefox на сервере с вершиной, и он использует много ресурсов процессора. Я также вижу из /proc/#/environ, что DISPLAY установлен на localhost: 10.0, что кажется правильным.

Как я могу запустить браузер с селеном на RHEL5.5? Как понять, почему Firefox не запускается?


person Brian C.    schedule 24.10.2012    source источник
comment
Как устроено ваше окружение? Сервер безголовый, и вы подключаетесь к какому-то экземпляру X-сервера, чтобы получить графический интерфейс на своем ноутбуке, верно? Когда вы говорите, что можете запустить firefox с терминала на сервере, и он отображается на вашем ноутбуке, вы запускаете его из отдельного ssh-клиента только для терминала или запускаете его из экземпляра терминала, работающего в удаленном сеансе графического интерфейса? Когда вы запускаете python/selenium, под каким пользователем он работает, и уверены ли вы, что он настроен для работы с экземпляром GUI для вашего удаленного клиента? Что произойдет, если вы попытаетесь запустить его с терминала в удаленном графическом интерфейсе?   -  person Silas Ray    schedule 24.10.2012
comment
Сервер безголовый, и я подключаюсь к нему с помощью ssh -X, и я использую ноутбук с X. Я использую тот же сеанс терминала для запуска Firefox из командной строки, который работает и отображается на мой ноутбук и для запуска скрипта Python, который не работает. Скрипт работает как мой пользователь.   -  person Brian C.    schedule 24.10.2012


Ответы (1)


Похоже, проблема, с которой я столкнулся, связана с ошибкой селена: http://code.google.com/p/selenium/issues/detail?id=2852

Я использовал исправление, описанное в комментарии № 9 http://code.google.com/p/selenium/issues/detail?id=2852#c9

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

person Brian C.    schedule 24.10.2012