2011-04-25 11 views
6

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

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

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

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

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

+0

+1 для добавления вашего решения, как только вы получили его правильно –

+0

@ user724205 Ваш ответ должен быть добавлен в качестве ответа, а не скопирован в вопрос. –

ответ

3
  • РЕШИТЬ - EDIT * - жаль, что я не мог ответить на этот вопрос, но, видимо, мой счет слишком новый, чтобы сделать это только пока.

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

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

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

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

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

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

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

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

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

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

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^