4
我有硒网格上AmazonEC2运行运行硒网格WebdriverJS测试
它包括在端口7055上运行的轮毂和端口上运行的节点的7056
我有以下试验:
var webdriver = require('selenium-webdriver'),
driver = new webdriver.Builder().
usingServer('http://ec2-50-18-75-182.us-west-1.compute.amazonaws.com:7055/wd/hub').
withCapabilities({'browserName': 'firefox'}).
build();
var postTitle = "Post "+(+new Date);
driver.get('http://si-demo.herokuapp.com/posts/new');
driver.findElement(webdriver.By.id('post_name')).sendKeys("Selenium");
driver.findElement(webdriver.By.id('post_title')).sendKeys(postTitle);
driver.findElement(webdriver.By.id('post_content')).sendKeys("This is auto generated by a test");
driver.findElement(webdriver.By.name('commit')).click();
driver.quit();
当我尝试连接到集线器端口时失败。 当我直接连接到节点端口时,测试会运行。
连接到电网枢纽,当我得到的错误是:
timers.js:103
if (!process.listeners('uncaughtException').length) throw e;
^
Error: ETIMEDOUT connect ETIMEDOUT
at ClientRequest.sendRequest (/Users/jason/Development/cirrus/spanish-inquisition-runner/node_modules/selenium-webdriver/http/index.js:127:16)
at ClientRequest.EventEmitter.emit (events.js:96:17)
at Socket.socketErrorListener (http.js:1436:9)
at Socket.EventEmitter.emit (events.js:96:17)
at Socket._destroy.self.errorEmitted (net.js:329:14)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
==== async task ====
WebDriver.createSession()
at Function.webdriver.WebDriver.acquireSession_ (/Users/jason/Development/cirrus/spanish-inquisition-runner/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:130:49)
at Function.webdriver.WebDriver.createSession (/Users/jason/Development/cirrus/spanish-inquisition-runner/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:109:30)
at Builder.build (/Users/jason/Development/cirrus/spanish-inquisition-runner/node_modules/selenium-webdriver/builder.js:70:22)
at Object.<anonymous> (/Users/jason/Development/cirrus/spanish-inquisition-runner/open_canvas.js:5:8)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
我的问题是: 不硒WebdriverJS支持连接到集线器?如果是这样我做错了什么?
注:
- 我已经连接到轮毂并成功运行的相同步骤一个RSpec测试。
- 我也能够在EC2实例上本地连接集线器并运行测试,只有在尝试远程连接到电网时才会发生。
- 当在Selenium2网格控制台上查看:7055/grid/console时,它似乎在节点上使用会话。
命令我在EC2上用于启动电网:
Xvfb :0 -screen 0 1024x768x24 2>&1 >/dev/null &
export DISPLAY=:0
java -jar selenium-server-standalone-2.32.0.jar -port 7055 -role hub
xvfb-run java -jar selenium-server-standalone-2.32.0.jar -role node -hub http://localhost:7055/grid/register
也许,使用webdriver的JS时,您可能需要运行特定版本的网格中心?在他们的网站上,它看起来像2.32.0可以工作,但也许你应该尝试2.29或其他版本,看看错误是否改变? – djangofan
您如何确定您已将端口从您的硒中枢打开到您的EC2实例?如果是我,我只能运行EC2实例上的网格节点,然后在自己的计算机上运行集线器。 – djangofan
命令'curl http://ec2-50-18-75-182.us-west-1.compute.amazonaws.com:7055/wd/hub'的结果是什么? – shawnzhu