Selenium зависает при запуске Firefox в Ubuntu

Моя конечная цель — заставить Selenium работать «внутри» Дженкинса. Моя установка Jenkins выполняется на виртуальной машине Ubuntu.

После некоторых проблем с настройкой jenkins selenium (из-за разрешений для пользователя, под которым работает jenkins) я переключился на запуск команды из командной строки, чтобы посмотреть, что происходит. Моя цель — запустить тест здесь, а затем заставить его работать в Jenkins.

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

resn@resn-VirtualBox:~$ sudo java -jar /var/lib/jenkins/tools/selenium/selenium-server.jar -htmlSuite *firefox http://google.com "/var/lib/jenkins/jobs/Selenium setup test/workspace/tests/test-testsuite.html" "/var/lib/jenkins/jobs/Selenium setup test/workspace/results/results.html" -log=/tmp/selenium.log -debug=true -firefoxProfileTemplate "/home/resn/.mozilla/firefox/6f2um01h.Selenium"

23/08/2011 11:19:51 AM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
11:19:52.172 INFO - Java: Sun Microsystems Inc. 19.0-b09
11:19:52.173 INFO - OS: Linux 2.6.35-28-generic i386
11:19:52.223 INFO - v2.4.0, with Core v2.4.0. Built from revision 13337
11:19:52.488 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
11:19:52.491 INFO - Version Jetty/5.1.x
11:19:52.491 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
11:19:52.501 INFO - Started HttpContext[/selenium-server,/selenium-server]
11:19:52.501 INFO - Started HttpContext[/,/]
11:19:52.520 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@15b7986
11:19:52.521 INFO - Started HttpContext[/wd,/wd]
11:19:52.530 INFO - Started SocketListener on 0.0.0.0:4444
11:19:52.530 INFO - Started org.openqa.jetty.jetty.Server@54172f
11:19:53.379 INFO - Preparing Firefox profile...
11:19:55.949 INFO - Launching Firefox...

Виртуальная машина Ubuntu не является безголовым экземпляром, поэтому, насколько я знаю, мне не нужно устанавливать xvfb (как упоминается в некоторых сообщениях блога по той же теме).

До этой проблемы у меня была проблема с профилями Firefox, которую я исправил, используя подход, на который я ответил здесь: Jenkins не может запустить тесты селена (время ожидания создания профиля истекло)

Firefox открывается нормально при запуске с помощью ярлыка в меню «Приложения» и при простом вводе «firefox» в командной строке.

Я пытался добавить полный путь к приложению Firefox разными способами:

  • В команде "... *firefox /usr/lib/firefox-3.6.20/firefox.sh..." Результатом является "Не удается найти файл HTML Suite:/home/resn/http:/google.com :" - кажется, что путь firefox перепутан со следующим параметром
  • В команде без пробела '... "firefox/usr/lib/firefox-3.6.20/firefox.sh..." В результате получается

    «Обнаружено исключение пакета HTML: java.lang.RuntimeException: браузер не поддерживается: *firefox/usr/lib/firefox-3.6.20/firefox.sh

    Поддерживаемые браузеры включают: *firefox"

  • В grid_configuration.yml '... браузер: "*firefox /usr/lib.firefox-3.6.20/firefox.sh". Что не оказало никакого влияния.

Кроме того, поскольку процесс просто зависает и на самом деле не завершается сбоем, файл журнала (/tmp/selenium.log) не создается.

Буду очень рад любым идеям, советам или предложениям по отладке!


person mattbilson    schedule 22.08.2011    source источник
comment
Убунту 10.10. Поможет ли обновление до 11?   -  person mattbilson    schedule 23.08.2011
comment
Я понял, у меня Fedora 14.   -  person Gary    schedule 03.11.2011


Ответы (2)


Проблема, кажется, при работе в безголовой среде. Если у вас нет окна для рендеринга браузера, он зависнет. Вы можете проверить это, вставив ту же команду, когда вы ssh на свой компьютер, но вместо этого выполните ssh -X [email protected]

Я нашел эту документацию о том, что вы можете сделать, чтобы исправить это: http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

person Gary    schedule 03.11.2011
comment
После того, как вы выполните процедуры установки, чтобы установить это, поместите Xvfb: 100 -ac & в сценарий оболочки, запущенный прямо перед запуском селена. Также поместите DISPLAY в настройки администратора на hudson для добавления переменных среды. - person Gary; 03.11.2011

У меня тоже была такая же проблема, и ни одно из решений, которые я нашел, не сработало:

  • Нет проблем с исполняемым путем firefox
  • Безголовый дисплей уже работал
  • Проблем с профилем браузера не было

Что я сделал, так это попытался запустить firefox вручную (после настройки DISPLAY) - после чего я получил ошибку:

Библиотека D-Bus настроена неправильно; не удалось прочитать uuid машины: не удалось открыть /var/lib/dbus/machine-id

Я понятия не имел, как эта проблема возникла внезапно, но исправить ее было относительно просто:

dbus-uuidgen > /var/lib/dbus/machine-id

согласно http://www.torkwrench.com/2011/12/16/d-bus-library-appears-to-be-incorrectly-set-up-failed-to-read-machine-uuid-failed-to-open-varlibdbusmachine-id

person xiankai    schedule 20.12.2013