Selenium: недопустимая "уже запущенная" ошибка при запуске сервера

Я пытаюсь запустить сервер Selenium. Тем не менее, когда я печатаю:

java -jar selenium-server-standalone-2.0b3.jar

Я получаю исключение:

Selenium уже работает на порту 4444. Или какой-то другой сервис.

Я попытался остановить это, на случай, если это действительно работает:

HTTP: // локальный: 4444 / Селен-сервер / водитель / CMD = Shutdown

Это дает мне сообщение:

ОШИБКА Server Exception: sessionId не должен быть нулевым; эта сессия уже началась?

Если я просто напишу:

HTTP: // локальный: 4444 /

Я получил:

ОШИБКА HTTP: 403
Запрещено для прокси

Идеи?

16 ответов

Это сработало для меня:

HTTP: // локальный: 4444 / Селен-сервер / водитель / CMD = shutDownSeleniumServer

Если сервер selenium уже работает на порте 4444, он выключит сервер и скажет OKOK, если на этом порту 4444 не запущен selenium, тогда, нажав выше url, вы получите "Unable to connect"

Попробуй это:

lsof -i -n -P | grep 4444

а также kill идет процесс:4444

Один лайнер:

kill -9 $(lsof -ti tcp:4444)

Сообщение об ошибке, которое предлагает Selenium, немного сбивает с толку. Это действительно должно сказать вам, что вы делаете синтаксическую ошибку. У меня тоже была эта проблема. Убедитесь, что строка CMD ТОЧНО, как это:

http://localhost:4444/selenium-server/driver/?cmd= shutDownSeleniumServer

Это означает использование полной команды shutDownSeleniumServer и убедитесь, что s в shut в нижнем регистре (это была моя ошибка).

Надеюсь это поможет.

Для выключения сервера вы можете использовать: http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer

Он выдаст сообщение OKOK, значит он отключился. Если сервер не работает, на нем будет отображаться "Эта веб-страница недоступна"

Чтобы проверить состояние сервера селена, используйте этот http://localhost:4444/selenium-server/driver/?cmd=getLogMessages

Если сервер запущен, если он не запущен, он выдаст ОК, а веб-страница будет недоступна.

Если вы используете Windows, вы можете открыть диспетчер задач, найти процесс java.exe или javaw.exe и завершить его. Это освободит порт 4444, и вы сможете перезапустить сервер Selenium.

У меня была такая же ошибка, но сервер не работал. Отключен Java-версия была в деле. Убедитесь, что вы используете Java 7 или выше:

java -version

Если вы запустили Selenium с использованием Java (вместо какой-либо среды тестирования, которую вы можете или не можете использовать), вы можете уничтожить все оставшиеся экземпляры Selenium с помощью:

pkill java

Это гарантированно уничтожит любые реликвии Java (включая селен, если начнется таким образом) - но будьте осторожны - предостережение в том, что вы можете убивать и другие процессы (из-за того, как работает pkill). В моем случае я хочу убить все, что работает в JVM, так что это решило это для меня.

В соответствии с комментарием от Goldberg ниже, обратите внимание, что это не убьет любые службы драйверов или браузеры, работающие в вашей системе!

В OSX, если вы выполните команду из @HaloWebMaster (lsof -i -n -P | grep 4444) следующим шагом является получение PID (обычно это 4 - 5-значное число, обозначающее идентификатор процесса) и выполнение следующей команды:

kill -9 <PID>

Вам не нужно использовать sudo, если процесс не был запущен другим пользователем или пользователем root.

Для Windows попробуйте следующее:

taskkill /PID <ProcessID> /F

У меня была та же проблема, я запустил свою точку доступа Jboss, где у меня развернуто приложение, и после этого попытался запустить сервер selenium и не смог запуститься. Проблема заключалась в том, что Jboss использует тот же порт, что и сервер Selenium, поэтому я запустил сервер Selen на другом порту.

Решение: java -jar selenium-server-standalone-2.0b3.jar -port 1234 -htmlSuite "*firefox" "http://localhost:8080/" "путь к пакету" "путь к результатам"

lsof не дал никаких результатов в моем случае.

На машине с Ubuntu мне пришлось сделать следующее:

sudo netstat -tapen | grep ":4444 "

Ответ был как:

tcp6       0      0 XXXXXXXXX:4444       :::*                    LISTEN      107        31526       **10479**/java

И убить процесс сервера Selenium, идентифицированный (в моем случае) с 10479

sudo kill 10479

Если все вышеперечисленное не работает, сохраните свою работу и перезагрузите систему. Это решит проблему

Спасибо,

Ссылка Андре прекрасно работает для меня.

Поскольку порт 4444 является портом Selenium по умолчанию, проверьте это.

Если вы получите ошибку 403 на 127.0.01:4444, а не ошибку 404, значит, что-то там работает. (Вы уверены, что это не может быть предыдущий экземпляр Selenium? Это было бы самым логичным.)

Иногда Selenium продолжают работать в фоновом режиме после неожиданного выхода. Я бы посоветовал проверить запущенные процессы или перезагрузить компьютер, если ничего не помогло.

Это часто случается со мной, когда Хадсон просит Selenium-Server запустить некоторые тесты, и по некоторым причинам это не удается. Убийство процесса решает проблему.

Тот ERROR Server Exception: sessionId should not be null; has this session been started yet? сообщение приходит от селена. Если вы видите это, на этом порту работает сервер Selenium.

Другие вопросы по тегам