chromedriver 版本(如 76.0.3809.12)的量角器问题

chromedriver 版本(如 76.0.3809.12)的量角器问题

问题描述:

为新的 chromedriver 版本(如 76.0.3809.68)运行 conf.js 文件时出现量角器问题

Protractor issue while running the conf.js file for new chromedriver versions like 76.0.3809.68

我正在尝试在今天更新的最新 chrome 版本 76.0.3809.100 上运行量角器测试,但它们一直失败并给出错误.我拥有的版本是量角器版本:5.4.2,网络驱动程序版本:12.1.6,可用的硒独立版本:3.141.59可用的 chromedriver 版本:2.46 [last]、76.0.3809.12geckodriver 可用版本:v0.24.0 [last]

I am trying to run the protractor tests on latest chrome version which got updated today 76.0.3809.100 but they keep failing and giving error. The versions that i have are protractor version: 5.4.2, webdriver-version: 12.1.6, selenium standalone version available: 3.141.59 chromedriver versions available: 2.46 [last], 76.0.3809.12 geckodriver version available: v0.24.0 [last]

我尝试使用 webdriver-manager update 更新 webdriver manager 来更新 chrome 驱动程序,也尝试重新安装 webdriver-manager 并安装特定版本的 webdriver,但似乎没有任何工作.我还尝试安装较低版本的 chrome,即 75,但每次我尝试安装最新版本时.测试在更新后停止工作之前运行良好.任何有关此问题的帮助/建议都会非常有帮助.

I have tried updating the webdriver manager using webdriver-manager update to update the chrome driver, have also tried to reinstall the webdriver-manager and insatll a specific version of webdriver but nothing seems to be working. I also tried to install a lower version of chrome i.e 75 but everytime i try it installs the latest version instead. The tests were running fine before just after the update they stopped working. Any help / suggestion regarding this issue would be really helpful.

这是抛出的错误:

E/launcher - session not created: Chrome version must be between 71 and 75
  (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.17763 x86_64)
[15:08:03] E/launcher - SessionNotCreatedError: session not created: Chrome version must be between 71
and 75
  (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.17763 x86_64)
    at Object.checkLegacyResponse (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:546:15)
    at parseHttpResponse (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:509:13)
    at doSend.then.response (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:441:30)
    at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: WebDriver.createSession()
    at Function.createSession (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:769:24)
    at Function.createSession (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\chrome.js:761:15)
    at Direct.getNewDriver (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\built\driverProviders\direct.js:77:33)
    at Runner.createBrowser (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\built\runner.js:195:43)
    at q.then.then (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\built\runner.js:339:29)
    at _fulfilled (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:834:54)
    at C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:863:30
    at Promise.promise.promiseDispatch (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:796:13)
    at C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:556:49
    at runSingle (C:\Users\gmangat\AppData\Roaming\npm\node_modules\protractor\node_modules\q\q.js:137:13)
[15:08:03] E/launcher - Process exited with error code 199

这是我的 conf.js 文件exports.config = {

This is my conf.js file exports.config = {

directConnect: true,
  multiCapabilities: [{
    browserName: 'chrome',
    acceptInsecureCerts: true,
    'specs': [
      //e2e Specs
      './src/e2e/shared/specs/LoginTest.e2e.spec.js',
      './src/api/unified-message-api/specs/createUMTask.js',
     ],
    chromeOptions: {
      args: ['--disable-infobars', '--disable-browser-side-navigation'],
      prefs: {
        'profile.managed_default_content_settings.notifications': 1
      }
    },
  }],
  framework: 'jasmine2',
  SELENIUM_PROMISE_MANAGER: true,
  onPrepare: function () {
    browser.ignoreSynchronization = true;
    browser.driver.manage().timeouts().implicitlyWait(5000);
    browser.driver.manage().window().setSize(1280, 1024);

    //npm install jasmine-spec-reporter --save-dev
    var specReporter = require('jasmine-spec-reporter').SpecReporter;
    jasmine.getEnv().addReporter(new specReporter({
      displayFailuresSummary: true,
      displayFailuredSpec: true,
      displaySuiteNumber: true,
      displaySpecDuration: true
    }));

    var AllureReporter = require('jasmine-allure-reporter');
    jasmine.getEnv().addReporter(new AllureReporter({
      resultsDir: 'allure-results'
    }));
    jasmine.getEnv().afterEach(function (done) {
      browser.takeScreenshot().then(function (png) {
        allure.createAttachment('Screenshot', function () {
          return new Buffer(png, 'base64')
        }, 'image/png')();
        done();
      })
    });
  },

  jasmineNodeOpts: {
    defaultTimeInterval: 6000000
  }

};

/* Version Used:
Node: 10.15.3
Protractor : 5.4.2
npm i protractor@5.4.2

*/

对我有用的解决方案是导航到 ./node_modules/protractor 并运行 npm i webdriver-manager@latest代码>.

The solution that worked for me was navigating to ./node_modules/protractor and running npm i webdriver-manager@latest.

然后返回应用根目录并运行 webdriver-manager update,这次它应该下载 v76 驱动程序.

Then go back to the app root and run webdriver-manager update and this time it should download the v76 driver.