我试图让 Protractor 通过根据这个 github 问题设置 seleniumServerJar 路径来启动独立的 Selenium 服务器,但是它在不同的地址和端口上启动 selenium 服务器,而不是使用 java -jar 或使用 ./node_modules/量角器/bin/webdrivermanager 启动。
从 java -jar /path/to/jar 输出开始:
$ java -jar selenium-server-standalone-2.42.2.jar Jun 23, 2014 10:28:25 PM org.openqa.grid.selenium.GridLauncher 主要信息:启动独立服务器 22:28:25.082 信息 - Java: Apple Inc. 20.65-b04-462 22:28:25.082 信息 - 操作系统:Mac OS X 10.9.3 x86_64 22:28:25.092 信息 - v2.42.2,带有核心 v2.42.2。从修订版 6a6995d 22:28:25.146 INFO 构建 - 默认驱动程序 org.openqa.selenium.ie.InternetExplorerDriver 注册被跳过:注册功能 Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] 没有与当前平台匹配:MAC 22:28:25.197 INFO - RemoteWebDriver 实例应连接到:
http://127.0.0.1:4444/wd/hub
22:28:25.198 信息-版本 Jetty/5.1.x 22:28:25.199 信息-启动 HttpContext[/selenium-server/driver,/selenium-server/driver] 22:28:25.199 信息-启动 HttpContext[/selenium- server,/selenium-server] 22:28:25.199 信息-已启动 HttpContext[/,/] 22:28:25.235 信息-已启动 org.openqa.jetty.jetty.servlet.ServletHandler@7786df0f 22:28:25.235 信息-已启动HttpContext[/wd,/wd] 22:28:25.240 INFO - 在 0.0.0.0:4444 上启动 SocketListener 22:28:25.240 INFO - 启动 org.openqa.jetty.jetty.Server@42698403
通过指定 seleniumServerJar 使用 Protractor 启动它:
$ ./node_modules/protractor/bin/protractor protractor_conf.js 正在启动 selenium 独立服务器... Selenium 独立服务器开始于
http://192.168.0.20:59959/wd/hub
然后它挂起并超时。
指定 seleniumServerJar 时如何正确启动独立的 selenium 服务器?
旁注:我已将 selenium-server.jar 文件放入我的项目中,以便根据上述 github 问题轻松使用相对路径。
我的量角器_conf.js:
exports.config = {
// Do not start a Selenium Standalone sever - only run this using chrome.
//chromeOnly: true,
//chromeDriver: '../node_modules/protractor/selenium/chromedriver',
//we are using a standalone selenium server so give it the local address
//seleniumAddress: 'http://0.0.0.0:4444/wd/hub',
seleniumServerJar: './selenium-server-standalone-2.42.2.jar',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'phantomjs'
},
baseUrl: 'http://localhost:8000',
onPrepare: function () {
require('jasmine-reporters');
var capsPromise = browser.getCapabilities();
capsPromise.then(function (caps) {
var browserName = caps.caps_.browserName.toUpperCase();
var browserVersion = caps.caps_.version;
var prePendStr = browserName + '-' + browserVersion + '-';
jasmine.getEnv().addReporter(new jasmine.JUnitXmlReporter('test-results/protractor/', true, true, prePendStr));
});
},
// Spec patterns are relative to the current working directly when
// protractor is called.
specs: ['test/protractor/**/*_spec.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
isVerbose: true,
defaultTimeoutInterval: 30000
},
params: {
env: 'test'
}
};