Selenium: недопустимая "уже запущенная" ошибка при запуске сервера
Я пытаюсь запустить сервер Selenium. Тем не менее, когда я печатаю:
java -jar selenium-server-standalone-2.0b3.jar
Я получаю исключение:
Selenium уже работает на порту 4444. Или какой-то другой сервис.
Я попытался остановить это, на случай, если это действительно работает:
HTTP: // локальный: 4444 / Селен-сервер / водитель / CMD = Shutdown
Это дает мне сообщение:
ОШИБКА Server Exception: sessionId не должен быть нулевым; эта сессия уже началась?
Если я просто напишу:
Я получил:
ОШИБКА HTTP: 403
Запрещено для прокси
Идеи?
16 ответов
Это сработало для меня:
HTTP: // локальный: 4444 / Селен-сервер / водитель / CMD = shutDownSeleniumServer
Если сервер selenium уже работает на порте 4444, он выключит сервер и скажет OKOK, если на этом порту 4444 не запущен selenium, тогда, нажав выше url, вы получите "Unable to connect"
Попробуй это:
lsof -i -n -P | grep 4444
а также kill
идет процесс: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.