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

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

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

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

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

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

Ответы [ 3 ]

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

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

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

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

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

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

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

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

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

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

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

1 голос
/ 21 июня 2011

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

0 голосов
/ 28 декабря 2011

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

...