I'm setting up e2e tests (protractor) for a gitlab-ci pipeline using angular and actually I'm new to this topic. I want the tests to be headless also because the server where the Gitlab-ci is, is running on Linux.

But I always get this error:

E/launcher - unknown error: cannot find Chrome binary.

For me it makes no sense because it compiles successfully and also downloading, unzipping the Chromedriver and also got 1 running instance of Webdriver but then it crashes with mentioned error.

Also what I should mention is that it works local but when I push it, it doesn't.

I already tried some things I found like editing protractor.conf.js with '--no-sandbox' but it doesn't work for me.

Here you can see my protractor.conf.js

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

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
  capabilities: {
    browserName: 'chrome', chromeOptions: {
      args: [
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function () {
  onPrepare() {
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));

I hope you guys can help me with my problem and I thank you very much in advance for your answer.

2 Answers

Community On

fixed it by installing chrome on the linux server didnt find an other solution

Community On

If your Chrome is not installed in the standard location, you may have to explicitly specify it in your protractor.conf.js:

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


You can use chromeoptions:

ChromeOptions ChromeOptions = new ChromeOptions();
ChromeOptions.addArguments("--headless", "window-size=1024,768", "--no-sandbox");
driver = new ChromeDriver(ChromeOptions);