protractor.conf.js 1.84 KiB
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter } = require('jasmine-spec-reporter');
const path = require("path");
const os = require("os");
const fs = require("fs");
const downloadsPath = path.resolve(os.homedir(), "Téléchargements");
// try to use system chromedriver first
let chromeDriverPath = "/usr/bin/chromedriver";
if (! fs.existsSync(chromeDriverPath)) {
	const seleniumDir = "./node_modules/protractor/node_modules/webdriver-manager/selenium";
	if (fs.existsSync(seleniumDir)) {
		const files = fs.readdirSync(seleniumDir);
		for (const f of files) {
			if (/^chromedriver.+[^p]$/.test(f)) {
				chromeDriverPath = seleniumDir + "/" + f;
console.log("---------- USING CHROMEDRIVER AT PATH: ", chromeDriverPath);
exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: [ "--no-sandbox", "--headless", "--window-size=1024x768" ],
      prefs: {
        download: {
            prompt_for_download: false, 
            directory_upgrade: true,
            // default_directory: '/tmp/e2e-downloads'
  chromeDriver: chromeDriverPath,
  directConnect: true,
  baseUrl: 'http://localhost:4200/',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.e2e.json'
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
    browser.manage().window().setSize(1600, 1000);
    browser.driver.sendChromiumCommand('Page.setDownloadBehavior', {
      behavior: 'allow',
      downloadPath: downloadsPath
    });