我当前的设置是我在Windows机器上运行作为集线器的selenium RC(假设机器名称是machine.name.com)。 我使用以下命令启动它
java -jar selenium-server2.15.jar -role hub -port 5555
我有一个在同一台机器上运行的selenium节点,它注册到上面的节点。 我使用以下命令启动节点
java -jar selenium-server2.15.jar -role node -port 5554 -hub http://machine.name.com:5555/grid/register
此节点已成功注册,我也可以运行此节点的测试。
现在我有另一台机器(一台LINUX - 让我们假设这台机器的IP地址是10.123.123.123),表格我希望在windows(machine.name.com)机器上运行另一个注册到集线器的节点在5555号港口。 我使用以下命令启动节点。
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX,maxInstances=5
问题是该节点没有被HUB注册。
我确实知道Hub和Node在我点击时已经检测到对方的事实 浏览器上显示http://machine.name.com:5555/console两个节点。 但是Linux机器旁边有一条错误消息“正在聆听http://10.123.123.123:5572(目前无法联系)”
并且不能从该节点运行硒测试。
我在seleniumgroups HERE上读到,远程节点也必须定义-hubHost
键值对。
所以我也尝试了以下命令,但没有成功
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX, maxInstances=5 -hubHost "machine.name.com"
但是这也没有注册节点。
请注意,linux机器上的控制台上没有抛出任何错误。 所有显示的是 -
13:20:55.891 INFO - starting auto register thread. Will try to register every 5000ms
13:20:55.891 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:23:06.860 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:25:17.678 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:27:28.496 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
13:29:39.311 INFO - Registering the node to hub :http://machine.name.com:5555/grid/register
在Windows机器上运行集线器的控制台上没有抛出任何错误。
防火墙被适当地打孔,并通过telneting进行检查。
有了这一切,我相信我已经做了一些根本错误的事情,有人可以帮助我!!!!!
答案 0 :(得分:11)
感谢大家帮忙,但问题是因为我的节点服务器的IP地址不可路由。
所以我为节点服务器创建了一个主机条目(DNS条目)。
并添加了另一个参数-host
所以命令现在看起来像
java -jar selenium-server2.15.jar -role node -port 5572 -hub http://machine.name.com:5555/grid/register -browser browserName=chrome,platform=LINUX, maxInstances=5 -hubHost "machine.name.com" -host "nodemachine.name.com"
再次感谢所有人。
答案 1 :(得分:0)
对我而言,似乎你正确地做到了。启动节点时是否尝试过-debug标志?也许你会在那里找到一些东西。
你可能想要browserName = googlechrome而不是browserName = chrome
答案 2 :(得分:0)
当我在VPN上时,我在本地计算机上托管节点和集线器时遇到了类似的问题。通过使用参数-host和-port
启动集线器和节点,我能够解决这个问题对于启动集线器,命令看起来像这样
java -jar selenium-server-standalone-2.32.0.jar -role hub -host <hubipaddress> -port 4444
对于启动节点,命令看起来像这样
java -jar selenium-server-standalone-2.32.0.jar -role node -host <nodeipaddress> -port 5555 -hub http://<hubipaddress>:4444/grid/register
在我的情况下,hubipaddress和nodeipaddress是相同的,它们是通过VPN分配给我的IP地址
答案 3 :(得分:0)
如果您使用的是虚拟机,则需要检查熵。 Selenium使用urandom,如果你没有足够的熵,那么节点需要1小时+(如果有的话)。
在CentOS(及其他发行版)上安装:
yum install haveged
chkconfig haveged on
systemctl start haveged
重启两个服务,Selenium应该正常启动。