我认为量角器正在寻找chromedriver的最新版本2.31。该版本于2017年7月22日发布,2天前发布。我无法使用此版本,因为它与我的centos版本(GLIBC_2.18)不兼容。
任何方式铬网站都说最后一个版本是chromedriver 2.30。 那么为什么量角器会尝试使用2.31?此版本未安装。 有没有办法强制使用特定版本?
感谢。
节点版本:v8.1.3 量角器版本:5.1.2版 Chrome版本:Google Chrome 59.0.3071.115 角度版本:1.5.9 浏览器:Chrome 操作系统和版本 分销商ID:CentOS 描述:CentOS Linux版本7.3.1611(核心版) 发布:7.3.1611 代号:核心
量角器配置文件:
module.exports = {
// This will automatically use jasmine latest
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
getPageTimeout: 20000,
allScriptsTimeout: 22000,
jasmineNodeOpts: {
showColors: true,
realtimeFailure: true,
includeStackTrace: true,
isVerbose: true,
},
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--no-sandbox'],
},
loggingPrefs: {driver: 'ALL', server: 'ALL', browser: 'ALL'},
},
...
};
量角器状态:
[root @protractor] #webdriver-manager status
[[14:21:22] I / status - selenium独立版本:3.4.0 [last]
[[14:21:22]我/状态 - chromedriver版本可用:2.30 [last]
[[14:21:22] I / status - geckodriver version available:v0.18.0 [last]
[[14:21:22]我/状态 - android-sdk不存在
[[14:21:22]我/状态 - appium不存在
错误:
[14:19:22] I/launcher - Running 1 instances of WebDriver
[14:19:22] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[14:19:22] E/launcher - The driver executable does not exist: /root/.npm-global/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.31
[14:19:22] E/launcher - WebDriverError: The driver executable does not exist: /root/.npm-global/lib/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.31
at Object.checkLegacyResponse (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:505:15)
at parseHttpResponse (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:440:13)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:169:7)
From: Task: WebDriver.createSession()
at Function.createSession (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:777:24)
at Function.createSession (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/chrome.js:709:29)
at createDriver (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/index.js:167:33)
at Builder.build (/root/.npm-global/lib/node_modules/protractor/node_modules/selenium-webdriver/index.js:623:16)
at Hosted.getNewDriver (/root/.npm-global/lib/node_modules/protractor/built/driverProviders/driverProvider.js:53:33)
at Runner.createBrowser (/root/.npm-global/lib/node_modules/protractor/built/runner.js:195:43)
at q.then.then (/root/.npm-global/lib/node_modules/protractor/built/runner.js:339:29)
at _fulfilled (/root/.npm-global/lib/node_modules/protractor/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/root/.npm-global/lib/node_modules/protractor/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/root/.npm-global/lib/node_modules/protractor/node_modules/q/q.js:796:13)
[14:19:22] E/launcher - Process exited with error code 199
您好,
答案 0 :(得分:2)
今天早上我也有同样的问题。我目前的解决方案是:
rm -rf ./node_modules/protractor/node_modules/webdriver-manager/selenium/* #Manually clean
./node_modules/protractor/bin/webdriver-manager clean #webdriver clean
mkdir ./node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver #Fix a silly issue with webdriver trying to move this folder when it doesn't exist
./node_modules/protractor/bin/webdriver-manager update --versions.chrome=2.30 #Get the specific version
ng e2e --webdriver-update false #run npm without updating chromedriver
因此我的package.json看起来像这样:
"pree2e": "rm -rf ./node_modules/protractor/node_modules/webdriver-manager/selenium/* && ./node_modules/protractor/bin/webdriver-manager clean && mkdir ./node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver && node ./node_modules/protractor/bin/webdriver-manager update --versions.chrome=2.30",
"e2e": "ng e2e -e mock --webdriver-update false --progres false --watch false",
答案 1 :(得分:2)
好的,所以我做了以下工作
webdriver-manager update
webdriver-manager clean
webdriver-manager update --versions.chrome=2.30
然后我用force versions.chrome启动selenium服务器。如果我没有指定此选项,webdriver-manager仍然使用chromedriver_2.31。
webdriver-manager start --versions.chrome=2.30
答案 2 :(得分:0)
今天早上我有同样的问题,我用webdriver-manager update
输入更新了selenium驱动程序,一旦驱动程序更新后输入webdriver-manager start
,此问题就解决了。试一试,让我知道结果。
答案 3 :(得分:0)
当chrome版本和webdriver版本不匹配时,可以通过选择webdriver-manager的确切版本来解决。例如:
webdriver-manager clean && webdriver-manager update --versions.chrome=2.42
该错误消息现在已大大改善。
[11:42:19] I/direct - Using ChromeDriver directly...
[11:42:19] E/launcher - session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-141-generic x86_64)
[11:42:19] E/launcher - SessionNotCreatedError: session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-141-generic x86_64)
at Object.checkLegacyResponse (/home/xyzzy/proj/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/home/xyzzy/proj/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/home/xyzzy/proj/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:189:7)
From: Task: WebDriver.createSession()
at Function.createSession (/home/xyzzy/proj/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
at Function.createSession (/home/xyzzy/proj/node_modules/protractor/node_modules/selenium-webdriver/chrome.js:761:15)
at Direct.getNewDriver (/home/xyzzy/proj/node_modules/protractor/built/driverProviders/direct.js:77:33)
at Runner.createBrowser (/home/xyzzy/proj/node_modules/protractor/built/runner.js:195:43)
at q.then.then (/home/xyzzy/proj/node_modules/protractor/built/runner.js:339:29)
at _fulfilled (/home/xyzzy/proj/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/home/xyzzy/proj/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/home/xyzzy/proj/node_modules/q/q.js:796:13)
at /home/xyzzy/proj/node_modules/q/q.js:556:49
at runSingle (/home/xyzzy/proj/node_modules/q/q.js:137:13)
at flush (/home/xyzzy/proj/node_modules/q/q.js:125:13)
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)
at Function.Module.runMain (module.js:696:11)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
[11:42:19] E/launcher - Process exited with error code 199