运行 使用 proactor 和获取会话的端到端测试用例未创建

Running e2e test cases using proactor and getting session not created

我使用量角器编写了端到端测试用例。几天前它工作正常。但是现在 运行 个测试用例。

我得到:

session not created: This version of ChromeDriver only supports Chrome version 81 (Driver info: chromedriver=81.0.4044.69

我已经安装了 Google Chrome 版本 81。然后我也遇到同样的错误。我尝试重新安装 node_modules 但没有成功。 这是我的 protractor.conf.json 文件的配置:

const { SpecReporter } = require('jasmine-spec-reporter');
const config = require('./protractor.conf').config;
const puppeteer = require('puppeteer');

/**
 * @type { import("protractor").Config }
 */
exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: [ "--headless", "--no-sandbox" ],
      binary: puppeteer.executablePath()
    },
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

因为你指定binary: puppeteer.executablePath(),这意味着量角器将使用npm包puppeteer提供的浏览器,而不是你自己安装的浏览器

所以问题是 'puppeteer' 提供的 chrome 浏览器版本不是 81。要使其成为 81 版本或更改 chrome 驱动程序版本以与当前版本兼容'puppeteer' chrome 浏览器。或删除此行binary: puppeteer.executablePath()以依赖必须手动预装在测试机上的浏览器。