Selenium зависает при запуске Firefox на Ubuntu
Моя конечная цель - запустить Selenium "внутри" Дженкинса. Моя установка Jenkins выполняется в виртуальной машине Ubuntu.
После некоторых проблем с настройкой селена jenkins (вытекающих из разрешений для пользователя, под которым работает 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 не является безголовым экземпляром, так что 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
Поддерживаемые браузеры включают в себя: * Firefox "
- В браузере grid_configuration.yml ' ...: "*firefox /usr/lib.firefox-3.6.20/firefox.sh". Который не имел никакого влияния.
Кроме того, поскольку процесс просто зависает и фактически не дает сбоя, файл журнала (/tmp/selenium.log) не создается.
Любые идеи, советы или предложения по отладке будут приветствоваться!
2 ответа
Проблема, кажется, при работе в безголовой среде. Если у вас нет окна для отображения вашего браузера, он будет зависать. Вы можете проверить это, вставив ту же команду, когда вы вставляете ssh на свой компьютер, но вместо этого выполните ssh -X me@server.com
Я нашел эту документацию о том, что вы можете сделать, чтобы это исправить: http://www.alittlemadness.com/2008/03/05/running-selenium-headless/
У меня была такая же проблема, и ни одно из найденных решений не сработало:
- Нет проблем с исполняемым путем 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