Selenium Server启动时

时间:2010-09-08 10:32:42

标签: selenium selenium-rc

我在Ubuntu系统中使用Selenium RC。 我想自动化测试,我需要在启动机器时启动Selenium-server.jar。

我在/ ect / init /中创建了seleniumServer.conf:

start on startup
start on runlevel 3

respawn

exec xvfb-run java -jar /home/condde/selenium-server-1.0.3/selenium-server.jar -port 4444

当我重新启动机器时,它运行正常,过程正在运行。 但是当我执行测试时,结果是:

PHPUnit_Framework_Exception: Could not connect to the Selenium RC server.

有什么想法吗? 谢谢!

5 个答案:

答案 0 :(得分:3)

我有同样的问题,我的进程有时无法连接selenium服务器。在深入研究调试日志和selenium源代码后,我发现这是因为当selenium尝试生成随机数时,如果/ dev / random挂起,则java的SecureRandom会挂起。所以我用/ dev / urandom替换/ dev / random,然后selenium服务器工作正常:

sudo mv /dev/random /dev/random.real
sudo ln -s /dev/urandom /dev/random

或者您可以修改$JAVA_HOME/jre/lib/security/java.security文件并更改属性:

securerandom.source=file:/dev/random

为:

securerandom.source=file:/dev/urandom

也许它有效,但不适合我。

答案 1 :(得分:1)

我是使用npm在ubuntu 14上完成的。

首先,通过npm安装selenium-standalone。

sudo npm install selenium-standalone -g
sudo selenium-standalone install

然后在/etc/init.d中创建一个符号链接,并将其配置为运行。

sudo ln -s /usr/local/bin/selenium-standalone /etc/init.d/
sudo update-rc.d selenium-standalone defaults

答案 2 :(得分:1)

另一个非常简单和好的解决方案是通过docker安装selenium。我使用了chrome图像,它很简单:

sudo docker run -d -p 4444:4444 selenium/standalone-chrome

-d选项make是一个守护程序,每次启动计算机时都会重新启动。 -p选项将webdriver端口(4444)从docker实例转发到主机。

嗯,它不是幻影,但无论如何我更喜欢镀铬。还有一个firefox图片!结帐https://github.com/SeleniumHQ/docker-selenium了解详情。

答案 3 :(得分:0)

使用 -debug 启动Selenium并显示调试日志,以查看是否有错误。

 java -jar selenium-server.jar -debug  > /var/log/selenium-server.log 2>&1

答案 4 :(得分:0)

我将使用-log参数启动selenium服务器进程以首先从进程获取信息并查看它是否实际上获得任何类型的连接,错误等。

要解决的一些想法:

  • 如果您输入http://localhost:4444,您会得到任何回复吗? 它应该由Jetty引擎呈现403错误。

  • 如果这不起作用,我会尝试使用您的实际IP:4444,这可能表示localhost变量,代理设置等问题。

  • 防火墙设置是否可以阻止4444端口?也许不允许Selenium Server进程启动浏览器。