您需要传递jvmArgs 而不是常规的args。所以当你运行独立服务器时:java -jar {jvmArgs} /path/to/standalone-server.jar {args}
更新:
args 值是分开的。标志和值是分开的(下面的更新答案):
localSeleniumStandaloneOpts:
{
args: [ '-log=', './Results/selenium_server_logs.log' ],
jvmArgs: [
'-Dwebdriver.chrome.driver=./node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.26.exe',
'-Dwebdriver.chrome.logfile=./Results/browser_logs_chrome.log',
'-Dwebdriver.gecko.driver=./node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.11.1.exe',
'-Dwebdriver.gecko.logfile=./Results/browser_logs_firefox.log',
'-Dwebdriver.ie.driver=./node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer_Win32_2.53.1.exe',
'-Dwebdriver.ie.driver.loglevel=INFO'
]
}
此问题已于 2016 年 11 月在 this commit 上修复。 Protractor 4.0.11+ 支持此功能。
更新:
这是如何测试的。向 selenium-webdriver remote/index.js 添加了 console.log。记录jvmArgs.concat('-jar', jar, '-port', port).concat(args)。运行 Protractor 时打印的值:
[11:52:49] I/local - Starting selenium standalone server...
[11:52:49] I/launcher - Running 1 instances of WebDriver
[ '-Dwebdriver.chrome.driver=../node_modules/webdriver-manager/selenium/chromedriver_2.26',
'-Dwebdriver.chrome.logfile=./browser_logs_chrome.log',
'-Dwebdriver.gecko.driver=../node_modules/webdriver-manager/selenium/geckodriver-v0.11.1',
'-Dwebdriver.gecko.logfile=./browser_logs_firefox.log',
'-Dwebdriver.chrome.driver=/usr/local/google/home/cnishina/src/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.26',
'-jar',
'/usr/local/google/home/cnishina/src/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-2.53.1.jar',
'-port',
58308,
'-log',
'selenium_server_logs.log',
'-debug' ]
[11:52:50] I/local - Selenium standalone server started at http://100.66.105.17:58308/wd/hub
Started
还针对 Protractor repo 示例 ./bin/protractor example/conf.js 运行此测试以进行测试。这是使用的conf:
exports.config = {
seleniumServerJar: '../node_modules/webdriver-manager/selenium/selenium-server-standalone-2.53.1.jar',
localSeleniumStandaloneOpts: {
args: [ '-log','selenium_server_logs.log', '-debug' ],
jvmArgs: [
'-Dwebdriver.chrome.driver=../node_modules/webdriver-manager/selenium/chromedriver_2.26',
'-Dwebdriver.chrome.logfile=./browser_logs_chrome.log',
'-Dwebdriver.gecko.driver=../node_modules/webdriver-manager/selenium/geckodriver-v0.11.1',
'-Dwebdriver.gecko.logfile=./browser_logs_firefox.log'
]
},
specs: ['example_spec.js'],
}
这里只测试了 Chrome 浏览器,并创建了 browser_logs_firefox.log 和 selenium_server_logs.log 文件。