E2E测试失败错误:在Linux中找不到chrome二进制文件

问题描述 投票:0回答:2

我正在使用angular为gitlab-ci管道设置e2e测试(量角器),实际上我是这个主题的新手。我希望测试也是无头的,因为Gitlab-ci所在的服务器正在Linux上运行。

但我总是得到这个错误:

E / launcher - 未知错误:找不到Chrome二进制文件。

对我来说没有任何意义,因为它成功编译并下载,解压缩Chromedriver并且还获得了1个正在运行的Webdriver实例,但随后它崩溃并提到了错误。

另外我应该提到的是它在本地工作,但是当我推动它时它不会。

我已经尝试过一些我发现的东西,比如使用'--no-sandbox'编辑protractor.conf.js,但它对我不起作用。

在这里你可以看到我的protractor.conf.js

const {SpecReporter} = require('jasmine-spec-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    browserName: 'chrome', chromeOptions: {
      args: [
        '--headless',
        '--disable-gpu',
        '--window-size=800,600',
      ]
    }
  },
  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.e2e.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
  }
};

我希望你们能帮助我解决我的问题,我非常感谢你们提前回答。

linux angular protractor gitlab-ci e2e-testing
2个回答
0
投票

通过在linux服务器上安装chrome修复它没有找到任何其他解决方案


0
投票

如果您的Chrome未安装在标准位置,则可能必须在protractor.conf.js中明确指定:

capabilities: {
    'browserName': 'chrome',
    "chromeOptions": {
      binary: "/Applications/your_path/Google Chrome.app/Contents/MacOS/Google Chrome"
    },
  },

要么

你可以使用chromeoptions:

ChromeOptions ChromeOptions = new ChromeOptions();
ChromeOptions.addArguments("--headless", "window-size=1024,768", "--no-sandbox");
driver = new ChromeDriver(ChromeOptions);
© www.soinside.com 2019 - 2024. All rights reserved.