Запуск Selenium:: WebDriver:: Firefox внутри Xvfb от ruby как некорневого пользователя

Я пытаюсь выполнить безголовое тестирование с помощью сценария ruby. По сути, я выполняю Xvfb на дисплее :1, а затем запускаю Watir::Browser.new(:firefox) использование watir-webdriver.

это отлично работает, если вы запустите скрипт как root-я могу запустить x11vnc и посмотреть, как скрипт выполняет браузер и взаимодействует с ним.

проблема в том, что мне нужно иметь возможность вызывать этот скрипт ruby из приложения Rails, а не запускать его как root... если я пытаюсь запустить скрипт из командной строки как регулярные пользователь, Xvfb запускает: 1 как обычно, но Watir не запускает браузер... это в конечном итоге тайм-аут после 60 секунд. Подключение через VNC показывает черный экран с курсором мыши.

Я могу сделать все это из командной строки-запустите Xvfb, затем запустите firefox --display=:1 и браузер запускается, так что это должна быть проблема Селена, верно?

Nutshell: Selenium/Webdriver отказывается запускать браузер внутри Xvfb, если я не запускаю скрипт как root.

3 ответов


  • SOLVED-EDIT * - извините, я не мог ответить на вопрос, но, по-видимому, моя учетная запись слишком новая, чтобы сделать это прямо сейчас.

решена! Удивительно, как такие вещи обычно решаются сами собой после того, как вы задали вопрос...

для тех, кто хочет знать, почему, есть несколько вещей, которые мне нужно сделать...

1) Убедитесь, что у пользователя есть рабочий домашний каталог (www-data по умолчанию нет... его домашний dir принадлежал root)

2) Запустите Xvfb из командной строки, а затем запустите firefox из командной строки (не из скрипта) - это заполнит домашнюю папку пользователей обычным .dbus,.папки gconf etc

3) Если вы получаете массивную задержку, а затем сообщение об ошибке по строкам "произошла ошибка при загрузке или сохранении информации о конфигурации для firefox-bin", удалите .папка dbus в домашнем каталоге пользователя

4) Попробуйте #2 еще раз-если у вас был ошибка config раньше, теперь она должна исчезнуть.

5) попробуйте запустить скрипт еще раз.

это сработало как шарм для меня, поэтому, если у вас возникли аналогичные проблемы с запуском Xvfb и watir-webdriver из веб-приложения, попробуйте.

спасибо всем за вклад в то, что руки вниз лучший сайт Q&A в интернете... это место спасало мою задницу больше раз, чем я хотел бы упомянуть.

Примечание: пользователь первоначально ввел это изменение в свой вопрос, потому что они не могли понять, как опубликовать его в качестве ответа. Это было позже отредактировано из вопроса каким-то благонамеренным человеком, но никогда не добавлялось в качестве ответа.


Привет не знаю, если это ссылке может быть помощь для вас. Это мне очень помогло. Мне нужно было запустить watir-webdriver автоматически при запуске / перезагрузке - это сработало для меня (читайте комментарии).


вы также должны взглянуть на Ruby wrapper для Xvfb http://rubygems.org/gems/headless