Selenium:启动服务器时出现“已在运行”错误

时间:2011-05-04 12:36:32

标签: selenium

我正在尝试启动并运行Selenium服务器。但是,当我输入:

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

我得到一个例外:

  

Selenium已在端口4444上运行。或者其他一些服务是。

我试图阻止它,以防它真的在运行:

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

这让我得到了消息:

  

错误服务器异常:sessionId不应为null;这个会议已经开始了吗?

如果我写的话:

http://localhost:4444/

我明白了:

  

HTTP错误:403
  禁止代理

想法?

15 个答案:

答案 0 :(得分:45)

这对我有用:

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

如果selenium服务器已在端口4444上运行,那么它将关闭服务器并说 好的好的 如果selenium没有在这个端口4444上运行,那么通过点击上面的url会给你 “无法连接”

答案 1 :(得分:19)

试试这个:

lsof -i -n -P | grep 4444

kill它说的过程是:4444

答案 2 :(得分:14)

一衬垫:

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

答案 3 :(得分:8)

Selenium提供的错误消息有点令人困惑。它应该告诉你你正在犯一个语法错误。我也有这个问题。确保cmd字符串是这样的:

  

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

这意味着使用完整命令 shutDownSeleniumServer确保s中的shut为小写(是我的错误)。

希望这有帮助。

答案 4 :(得分:5)

如果您使用的是Windows,则可以打开任务管理器并找到java.exe或javaw.exe进程并将其终止。这将释放端口4444,您应该能够重新启动Selenium服务器。

答案 5 :(得分:5)

要关闭服务器,您可以使用: http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer

它会发出消息OKOK,表示它已关闭。如果服务器没有运行,那么它将显示"此网页不可用"

要检查selenium服务器状态,请使用此选项 http://localhost:4444/selenium-server/driver/?cmd=getLogMessages

如果服务器正在运行,它将给出OK,如果没有运行,那么它将显示不可用的网页

答案 6 :(得分:4)

我遇到了同样的错误,但没有运行任何服务器。 调整了java版本的原因。确保您运行的是java 7或更高版本:

java -version

答案 7 :(得分:1)

我有同样的问题,我启动了我的Jboss AP,我已经部署了我的应用程序,之后尝试运行selenium服务器并且无法启动。问题是Jboss使用的是Selenium服务器使用的相同端口,所以我做的是在另一个端口上启动selenium服务器

解决方案: java -jar selenium-server-standalone-2.0b3.jar -port 1234 -htmlSuite“* firefox”“http:// localhost:8080 /”“套件路径”“结果路径”

答案 8 :(得分:1)

lsof在我的案例中没有返回任何结果。

在Ubuntu机器上,我必须执行以下操作:

sudo netstat -tapen | grep ":4444 "

回复就像:

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

用10479杀死已确定的Selenium服务器进程(在我的情况下)

sudo kill 10479

答案 9 :(得分:1)

在OSX中,如果您按照@HaloWebMaster(lsof -i -n -P | grep 4444)中的命令执行,则下一步是获取PID(通常是一个指示进程ID的4 - 5位数字)并运行以下命令:

kill -9 <PID>

除非该进程是由其他用户或root启动的,否则您不应该使用sudo。

答案 10 :(得分:1)

如果您使用Java启动Selenium(而不是通过您可能使用或未使用的任何测试框架),您可以使用以下命令终止所有剩余的Selenium实例:

pkill java

保证杀死任何java遗物(包括硒如果以这种方式启动) - 但在这里要小心 - 请注意,你可能也会杀死其他过程(由于pkill的工作方式)。在我的情况下,我想杀死在JVM中运行的任何东西,所以这解决了它。

根据Goldberg的评论,请注意,这不会杀死系统上运行的任何驱动程序服务或浏览器!

答案 11 :(得分:0)

如果您在127.0.01:4444上收到403错误而不是404错误,则会在那里运行。 (你是肯定的,它不能是以前的实例Selenium?它是最合乎逻辑的。)

有时Selenium会在意外退出后继续在后台运行。我建议检查正在运行的进程,或者如果其他一切都失败则重启机器。

当Hudson要求Selenium-Server运行一些测试并且由于某些原因它在中间失败时,我经常遇到这种情况。杀死这个过程解决了这个问题。

答案 12 :(得分:0)

ERROR Server Exception: sessionId should not be null; has this session been started yet?消息来自Selenium。如果您正在查看它,则会在该端口号上运行Selenium服务器。

答案 13 :(得分:0)

如果以上所有方法均无效,请保存您的工作并重新启动系统。它将解决问题

答案 14 :(得分:0)

谢谢,

安德烈的链接对我来说很好。

由于4444是Selenium的默认端口,因此请检查它。