我一直愉快地使用量角器3.3.0和chromedriver2.21,直到Chrome版本54打破了它。我按照互联网的建议,用chromedriver2.24更新了量角器4.0.9,现在我不能让量角器运行我的测试。看起来它会启动,闪烁一个浏览器窗口,然后抛出这个…
堆栈跟踪:
[09:51:27] I/direct - Using ChromeDriver directly...
[09:51:27] I/launcher - Running 1 instances of WebDriver
[09:51:28] E/launcher - session not created exception
from disconnected: unable to connect to renderer
(Session info: chrome=54.0.2840.71)
(Driver info: chromedriver=2.24.417412 (ac882d3ce7c0d99292439bf3405780058fcca0a6),platform=Mac OS X 10.12.0 x86_64)
[09:51:28] E/launcher - SessionNotCreatedError: session not created exception
from disconnected: unable to connect to renderer
(Session info: chrome=54.0.2840.71)
(Driver info: chromedriver=2.24.417412 (ac882d3ce7c0d99292439bf3405780058fcca0a6),platform=Mac OS X 10.12.0 x86_64)
at WebDriverError (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:27:10)
at SessionNotCreatedError (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:308:10)
at Object.checkLegacyResponse (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:639:15)
at parseHttpResponse (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:538:13)
at /Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:472:11
at ManagedPromise.invokeCallback_ (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1379:14)
at TaskQueue.execute_ (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2913:14)
at TaskQueue.executeNext_ (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2896:21)
at /Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2820:25
at /Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7
From: Task: WebDriver.createSession()
at Function.createSession (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:329:24)
at Driver (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/selenium-webdriver/chrome.js:778:38)
at Direct.getNewDriver (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/built/driverProviders/direct.js:68:26)
at Runner.createBrowser (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/built/runner.js:198:43)
at /Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/built/runner.js:277:30
at _fulfilled (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/q/q.js:796:13)
at /Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/q/q.js:556:49
at runSingle (/Users/gregorybuchanan/.nvm/versions/node/v4.2.6/lib/node_modules/protractor/node_modules/q/q.js:137:13)
[09:51:28] E/launcher - Process exited with error code 199
我找不到任何与这个问题相关的东西…有什么想法吗?
我的conf. js文件:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
framework: 'jasmine2',
suites: {
views: './*_view_spec.js',
forms: './*_form_spec.js',
active: ['./registration_spec.js', './onboarding_spec.js'],
all: './*_spec.js',
current: './registration_spec.js'
},
specs: ['./*_spec.js'],
jasmineNodeOpts: {
showColors: false
},
directConnect: true,
capabilities: {
chromeOptions: {
args: ['--no-sandbox', '--user-data-dir=ProtractorTestProfile','--prompt-for-external-extensions=false', '--load-extension=extension-debug/development/chrome']
},
browserName: 'chrome'
},
params: {
environment: {
api: 'dev',
baseUrl: 'http://webapp-dev.xxxxxxx.com/#/'
}
},
onPrepare: function() {
browser.driver.manage().window().setSize(1280, 1024);
var disableNgAnimate = function() {
angular.module('disableNgAnimate', []).run(['$animate', function($animate) {
$animate.enabled(false);
}]);
};
browser.addMockModule('disableNgAnimate', disableNgAnimate);
browser.getCapabilities().then(function(caps) {
browser.params.browser = caps.get('browserName');
});
}
};
我也遇到了同样的问题,结果发现问题出在我的/etc/host
文件上。我有
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain hostname
::1 localhost.localdomain hostname
当它应该是
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
所以Selenium服务器认为您正在从远程地址或其他地方连接到它,并阻止了连接。
这也可能是重新安装macOS为您解决问题的原因。
希望这有助于将来有人看这个!
你是如何更新chrome驱动程序的?通过使用:
webdriver-manager update --versions.chrome 2.24 ?
我有这个完全相同的问题,我解决了下载chrome驱动程序版本从http://chromedriver.storage.googleapis.com/index.html?path=2.24/提取文件到我的selenium文件夹(/usr/local/lib/node_modules/webdriver-manager/selenium/)和删除旧的。
我相信使用命令行更新chrome驱动程序有一些错误,请参阅:https://github.com/angular/webdriver-manager/issues/102
我不明白这一点,也不能再浪费时间尝试了。完整/全新安装的macOS做到了这一点。