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

Моя конечная цель - заставить Селена работать "внутри" Дженкинса. Моя установка Jenkins работает на виртуальной машине Ubuntu.

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

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

[email protected]:~$ 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 [email protected]
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 [email protected]
11:19:53.379 INFO - Preparing Firefox profile...
11:19:55.949 INFO - Launching Firefox...

Виртуальная машина Ubuntu не является безголовым экземпляром, поэтому AFAIK мне не нужно устанавливать 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

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

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

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

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

Ответ 1

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

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

Ответ 2

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

  • Нет проблем с исполняемым файлом 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