【问题标题】:Error with chromedriver version. Protractor require 2.31chromedriver 版本出错。量角器需要 2.31
【发布时间】:2017-07-24 16:25:51
【问题描述】:

我认为 Protractor 正在寻找 chromedriver 的最后一个可用版本,即 2.31。该版本于 2017 年 7 月 22 日发布,两天前。我不能使用这个版本,因为它与我的 centos 版本(GLIBC_2.18)不兼容。

chrome 网站说最后一个版本是 chromedriver 2.30。 那么量角器为什么要尝试使用 2.31 呢?未安装此版本。 有没有办法强制使用特定版本?

谢谢。

节点版本:v8.1.3 量角器版本:版本 5.1.2 Chrome 版本:谷歌浏览器 59.0.3071.115 角度版本:1.5.9 浏览器:Chrome 操作系统和版本 发行商编号:CentOS 说明:CentOS Linux release 7.3.1611 (Core) 发布: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 状态
[14:21:22] I/status - selenium 独立版本可用:3.4.0 [last]
[14:21:22] I/状态 - 可用的 chromedriver 版本:2.30 [最后]
[14:21:22] I/status - geckodriver 版本可用:v0.18.0 [last]
[14:21:22] I/状态 - android-sdk 不存在
[14:21:22] I/status - 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

你好,

【问题讨论】:

    标签: angular selenium-webdriver protractor


    【解决方案1】:

    好的,我执行以下操作,它可以工作

    webdriver-manager update
    webdriver-manager clean
    webdriver-manager update --versions.chrome=2.30
    

    然后我用 forceversions.chrome 启动 selenium 服务器。如果我不指定这个选项,webdriver-manager 仍然使用 chromedriver_2.31。

    webdriver-manager start --versions.chrome=2.30
    

    【讨论】:

    • ng e2e 怎么样? ng e2e 将如何尝试再次启动 chrome 驱动程序?需要webdriver-manager stop吗?
    • 我不使用ng e2e 进行启动测试。事实上,我不必做webdriver-manager stop,因为它是从 docker 容器启动的。我刚刚用以前的 cmds 更改了 Dockerfile,它启动了一个新容器。但你的答案也是一样的!
    【解决方案2】:

    更新:ng e2e 和量角器现在可以工作了!

    今天早上我也遇到了同样的问题。我目前的解决方案是:

    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",
    

    【讨论】:

    • 嗨,泰勒,我这样做了,但仍然遇到同样的错误。我使用 npm install 安装量角器,然后使用 webdriver-manage cleanwebdriver-manager update --versions.chrome=2.30。但我仍然得到 驱动程序可执行文件不存在,并引用了 chromedriver_2.31。奇怪
    • 我看到了同样的事情,直到我清理了 webdriver-manager。我会继续调查。
    【解决方案3】:

    我今天早上遇到了同样的问题,我用webdriver-manager updateenter 更新了 selenium 驱动程序,一旦更新驱动程序输入webdriver-manager start 然后这个问题就解决了。试一试,让我知道结果。

    【讨论】:

    • webdriver-manager 更新抓取了错误的 chromdriver (2.31)。要解决这个问题,我们需要 chromedriver_2.30
    【解决方案4】:

    当 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
    

    【讨论】:

    猜你喜欢
    • 2018-01-04
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多