是否可以在一台机器上有一个 selenium 集线器,而在另一台计算机上有一个 phantomjs 实例以与 selenium 节点相同的方式连接到集线器?
如果我在同一台机器上启动一个 selenum hub 和一个 phantomjs 实例,我可以成功运行测试。
如果我启动一个 selenium 集线器并在另一台机器上启动一个 selenium 节点并使用 firefox 运行测试,测试将成功执行。
如果我在另一台机器上启动 selenium hub 和 phantomjs 实例,phantomjs 将成功连接到 hub,但当 hub 尝试发送测试时拒绝连接。
我发现连接到 selenium 集线器的 phantomjs 实例的每个示例总是显示 phantomjs 实例与集线器在同一台机器上运行。
基本环境信息###:
- 两台机器都运行 debian jessie
- selenium-server-standalone-2.39.0.jar
- phantomjs版本是1.9.7
- 使用 python 和 nose
场景和启动命令###:
hub 和 phantomjs 在同一台机器上 成功执行测试
java -jar selenium-server-standalone-2.39.0.jar -role hub -timeout=50 -browserTimeout=60 -ensureCleanSession
phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://localhost:4444
不同机器上的集线器和节点 使用 firefox 成功执行测试
java -jar selenium-server-standalone-2.39.0.jar -role hub -timeout=50 -browserTimeout=60 -ensureCleanSession
java -jar selenium-server-standalone-2.39.0.jar -role node -hub http://10.3.1.120:4444/grid/register -port 8080 -maxSessions=1
不同机器上的hub和phantomjs 无法执行测试
java -jar selenium-server-standalone-2.39.0.jar -role hub -timeout=50 -browserTimeout=60 -ensureCleanSession
phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://10.3.1.120:4444
服务器输出
Mar 10, 2014 12:19:57 PM org.openqa.grid.selenium.proxy.DefaultRemoteProxy isAlive WARNING: Failed to check status of node: Connection refused
phantomjs 输出
PhantomJS is launching GhostDriver... [INFO - 2014-03-10T16:15:46.149Z] GhostDriver - Main - running on port 8080 [INFO - 2014-03-10T16:15:46.150Z] GhostDriver - Main - registering to Selenium HUB 'http://10.3.1.120:4444' using '127.0.0.1:8080' [INFO - 2014-03-10T16:15:46.198Z] HUB Register - register - Registered with grid hub: http://10.3.1.120:4444/ (ok)
最佳答案
为 webdriver 参数添加您的 IP 地址以及端口号。这应该有助于解决问题。例如-
phantomjs --webdriver-selenium-grid-hub=http://<Remote_IP_Of_Grid_Hub>:4444 --webdriver=<IP_Of_The_Local_Node>:9301
基本上,如果“--webdriver”参数中未提及 IP,节点值将作为本地主机发送。然后集线器在本地主机端口 9301 上查找请求。由于端口 9301 在集线器上未打开,连接最终断开并且我们看到错误。
关于selenium - 当 phantomjs 在与 selenium hub 不同的机器上运行时连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306348/