Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

E2E test fail error: cannot find chrome binary in Linux

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: [
    './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}}));
  }
};

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

like image 947
Robin Hoffmann Avatar asked Apr 24 '19 09:04

Robin Hoffmann


2 Answers

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"
    },
  },

OR

You can use chromeoptions:

ChromeOptions ChromeOptions = new ChromeOptions();
ChromeOptions.addArguments("--headless", "window-size=1024,768", "--no-sandbox");
driver = new ChromeDriver(ChromeOptions);
like image 85
Bhatasana Prashant Avatar answered Sep 28 '22 03:09

Bhatasana Prashant


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

like image 20
Robin Hoffmann Avatar answered Sep 28 '22 01:09

Robin Hoffmann