首页 > 解决方案 > 在 directconnect=true 的情况下使用量角器 - 如何修复 - 此版本的 ChromeDriver 仅支持 Chrome 版本

问题描述

包.json

{
  "name": "test1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "npm run webdriver-update && npm run test-protractor",
    "test-protractor": "protractor protractor.conf.js",
    "webdriver-update": "webdriver-manager update"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "chai": "^4.2.0",
    "chai-as-promised": "^7.1.1",
    "cucumber": "^6.0.5",
    "jasmine-spec-reporter": "^4.2.1",
    "protractor": "^5.4.2",
    "protractor-cucumber-framework": "^6.2.0",
    "rimraf": "^3.0.1"
  }
}

量角器.conf.js

const protractor = require('protractor');

// console.log('browser = ', browser);
exports.config = {
  framework: 'custom',
  frameworkPath: require.resolve('protractor-cucumber-framework'),
  getPageTimeout: 60000,
  allScriptsTimeout: 500000,
  specs: ['features/*.feature'],
  baseURL: 'http://www.google.com/',
  cucumberOpts: {
    require: [
      './features/step_definitions/stepDefinitions.js'
    ],
    tags: false,
    profile: false,
    'no-source': true
  },
  onPrepare: function() {
    // browser.ignoreSynchronization = true;
    // browser.manage().window().maximize();
    // browser.manage().timeouts().implicitlyWait(5000);

  },
  capabilities: {
    browserName: "chrome",
    chromeOptions: {
      args: [
        '--headless',
        '--disaple-gpu',
        '--window-size=1920,1080',
        '--no-sandbox',
        '--disable-dev-shm-usage'
      ],
      prefs: {
        download: {
          prompt_for_download: false,
          extensions_to_open: ''
        },
        profile: {
          default_content_settings: {
            popups: 0
          }
        },
        directory_upgrade: true
      },
      useAutomationExtension: false
    }
  },
  // connec direct to webdriver, instead of local selenium server!
  directConnect: true,
  ignoreUncaughtException: true,
  onComplete: () => {
    // Reporter.createHtmlReport();
  }
}

错误

未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 80

我可以手动设置 update-config.json 并下载了许多不同的 chromedriver 版本,但我仍然得到同样的错误。例子:

更新配置.json

{"standalone":{"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar","all":["node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar"]},"gecko":{"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe","all":["node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe"]},"chrome":{"last":"node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.8.exe","all":["node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.8.exe","node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_75.0.3770.8.exe"]}}

错误

E/launcher - 会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 75

这是版本 75,那么到底发生了什么?我没有使用角度。我正在使用directconnect = true,并将所有内容设置为无头。我确实让它在某个时候工作,但丢失了代码并陷入了这个循环。

标签: protractorselenium-chromedriver

解决方案


好的,所以我遵循了这个线程的建议: - protractor 2.5.4 E/launcher - 未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 79

我现在使用 chromedriver 版本:78.0.3904.105。

  1. 节点 node_modules/protractor/bin/webdriver-manager clean
  2. 节点 node_modules/protractor/bin/webdriver-manager 更新
  3. 节点 node_modules/protractor/bin/webdriver-manager --versions.chrome=78.0.3904.105
  4. 确保此版本 - chromedriver_78.0.3904.105 - 在 update-config.json 文件的所有引用中更新。

更新配置.json

{ 
   "standalone":{ 
      "last":"node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar",
      "all":[ 
         "node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar"
      ]
   },
   "gecko":{ 
      "last":"node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe",
      "all":[ 
         "node_modules/protractor/node_modules/webdriver-manager/selenium/geckodriver-v0.26.0.exe"
      ]
   },
   "chrome":{ 
      "last":"node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.exe",
      "all":[ 
         "node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.exe",
         "node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_78.0.3904.105.exe"
      ]
   }
}

  1. 使用选项运行量角器:--no-webdriver-update
  "scripts": {
    "test": "npm run test-protractor --no-webdriver-update"
  },

现在它起作用了!


推荐阅读