Запуск Selenium :: WebDriver :: Firefox внутри Xvfb из ruby ​​от имени пользователя без полномочий root

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

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

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

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

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


person Richard Walker    schedule 25.04.2011    source источник
comment
+1 за добавление решения, как только вы его поняли   -  person Stéphane    schedule 16.10.2011
comment
@ user724205 Ваш ответ должен быть добавлен как ответ, а не скопирован в вопрос.   -  person George Stocker    schedule 16.07.2012


Ответы (3)


  • РЕШЕНО - РЕДАКТИРОВАТЬ * - извините, я не смог ОТВЕТИТЬ на вопрос, но, видимо, моя учетная запись слишком нова для этого.

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

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

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

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

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

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

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

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

Спасибо всем за то, что они внесли свой вклад в САМЫЙ ЛУЧШИЙ сайт вопросов и ответов в сети ... это место спасало мне задницу больше раз, чем я хотел бы упомянуть.

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

person Chuck van der Linden    schedule 01.07.2014

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

person Niels Kristian    schedule 21.06.2011

Вам также следует взглянуть на оболочку Ruby для Xvfb http://rubygems.org/gems/headless

person p0deje    schedule 28.12.2011