#3062·nightwatch

Unable to run firefox in headless mode

Author: aakash3771Created Feb 24, 2022Updated Jul 1, 2026
Labelsv2

Describe the bug

javascript
/* eslint-disable global-require */
require('@babel/register');

module.exports = {
  src_folders: ['tests'],
  page_objects_path: 'pages',
  custom_commands_path: [
    'node_modules/nightwatch-vrt/commands',
    'node_modules/nightwatch-coverage/commands',
  ],
  custom_assertions_path: ['node_modules/nightwatch-vrt/assertions'],
  globals_path: 'globals.js',
  detailed_output: true,
  output_folder: './dist',
  output_timestamp: true,
  backwards_compatibility_mode: false,
  disable_global_apis: false,
  report_network_errors: true,
  disable_error_log: true,
  disable_colors: false,
  disable_global_expect: true,
  disable_typescript: true,
  silent: true,
  skip_testcases_on_fail: true,
  use_xpath: true,
  element_command_retries: 2,
  window_size: {
    width: 1600,
    height: 1100,
  },
  webdriver: {},
  test_settings: {
    default: {
      globals: {
        visual_regression_settings: {
          latest_screenshots_path: 'vrt/latest',
          latest_suffix: '_ls',
          baseline_screenshots_path: 'vrt/baseline',
          baseline_suffix: '_bs',
          diff_screenshots_path: 'vrt/diff',
          diff_suffix: '_ds',
          threshold: 0.05,
          prompt: false,
          always_save_diff_screenshot: false,
        },
      },
      screenshots: {
        enabled: true,
        path: 'screenshots',
        on_failure: true,
      },
      desiredCapabilities: {
        browserName: 'firefox',
      },
      webdriver: {
        start_process: true,
        server_path: require('chromedriver').path,
      },
    },
    safari: {
      desiredCapabilities: {
        browserName: 'safari',
        alwaysMatch: {
          acceptInsecureCerts: false,
          javascriptEnabled: true,
          acceptSslCerts: true,
          platform: 'MAC',
        },
      },
      webdriver: {
        start_process: true,
        server_path: '/usr/bin/safaridriver',
      },
    },
    firefox: {
      desiredCapabilities: {
        browserName: 'firefox',
        alwaysMatch: {
          javascriptEnabled: true,
          acceptInsecureCerts: true,
          nativeEvents: true,
          'moz:firefoxOptions': {
            args: ['-headless', '-no-remote', '-incognito'],
            prefs: {
              'pdfjs.disabled': true,
              'browser.download.defaultFolder': 'downloads',
              'browser.download.useDownloadDir': true,
              'browser.download.folderList': 2,
              'browser.download.dir': 'downloads',
              'browser.helperApps.neverAsk.saveToDisk': 'application/pdf',
              'browser.download.manager.showWhenStarting': false,
              'browser.helperApps.neverAsk.openFile': 'application/pdf',
              'browser.helperApps.alwaysAsk.force': false,
              'browser.download.forbid_open_with': true,
              'browser.download.manager.useWindow': false,
              'browser.download.manager.scanWhenDone': false,
              'browser.download.manager.focusWhenStarting': false,
              'browser.download.manager.showAlertOnComplete': false,
              'browser.download.manager.closeWhenDone': true,
              'browser.cache.disk.enable': false,
              'browser.cache.disk.capacity': 0,
              'browser.cache.disk.smart_size.enabled': false,
              'browser.cache.disk.smart_size.first_run': false,
              'browser.sessionstore.resume_from_crash': false,
              'browser.startup.page': 0,
              'media.navigator.streams.fake': true,
              'media.navigator.permission.disabled': true,
              'device.storage.enabled': false,
              'media.gstreamer.enabled': false,
              'browser.startup.homepage': 'about:blank',
              'browser.startup.firstrunSkipsHomepage': false,
              'extensions.update.enabled': false,
              'app.update.enabled': false,
              'network.http.use-cache': false,
              'browser.shell.checkDefaultBrowser': false,
            },
          },
        },
      },
      webdriver: {
        start_process: true,
        server_path: require('geckodriver').path,
      },
    },
    chrome: {
      desiredCapabilities: {
        browserName: 'chrome',
        'goog:chromeOptions': {
          w3c: false,
          args: [
            '--headless',
            '--no-sandbox',
            '--ignore-certificate-errors',
            '--allow-insecure-localhost',
            '--incognito',
            '--disable-dev-shm-usage',
            'allow-file-access-from-files',
            'use-fake-device-for-media-stream',
            'use-fake-ui-for-media-stream',
            'disable-translate',
            'no-process-singleton-dialog',
            'mute-audio',
          ],
          prefs: {
            credentials_enable_service: false,
            'profile.password_manager_enabled': false,
            prompt_for_download: false,
            'download.default_directory': 'downloads',
            'safebrowsing.enabled': false,
          },
          excludeSwitches: ['enable-automation'],
        },
      },
      webdriver: {
        start_process: true,
        server_path: require('chromedriver').path,
        cli_args: [
          // --verbose
        ],
      },
    },
    edge: {
      desiredCapabilities: {
        browserName: 'MicrosoftEdge',
        'ms:edgeOptions': {
          w3c: false,
          // More info on EdgeDriver: https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/capabilities-edge-options
          args: [
            // '--headless'
          ],
        },
      },

      webdriver: {
        start_process: true,
        // Download msedgedriver from https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/
        //  and set the location below:
        server_path: '',
        cli_args: [
          // --verbose
        ],
      },
    },

    /// ///////////////////////////////////////////////////////////////////////////////
    // Configuration for when using the browserstack.com cloud service               |
    //                                                                               |
    // Please set the username and access key by setting the environment variables:  |
    // - BROWSERSTACK_USER                                                           |
    // - BROWSERSTACK_KEY                                                            |
    // .env files are supported                                                      |
    /// ///////////////////////////////////////////////////////////////////////////////
    browserstack: {
      selenium: {
        host: 'hub-cloud.browserstack.com',
        port: 443,
        log_path: 'false',
      },
      // More info on configuring capabilities can be found on:
      // https://www.browserstack.com/automate/capabilities?tag=selenium-4
      desiredCapabilities: {
        'bstack:options': {
          userName: '${BROWSERSTACK_USER}',
          accessKey: '${BROWSERSTACK_KEY}',
        },
      },

      disable_error_log: true,
      webdriver: {
        timeout_options: {
          timeout: 15000,
          retry_attempts: 3,
        },
        keep_alive: true,
        start_process: false,
      },
    },

    'browserstack.local': {
      extends: 'browserstack',
      desiredCapabilities: {
        'browserstack.local': true,
      },
    },

    'browserstack.chrome': {
      extends: 'browserstack',
      desiredCapabilities: {
        browserName: 'chrome',
        chromeOptions: {
          w3c: false,
        },
      },
    },

    'browserstack.firefox': {
      extends: 'browserstack',
      desiredCapabilities: {
        browserName: 'firefox',
      },
    },

    'browserstack.ie': {
      extends: 'browserstack',
      desiredCapabilities: {
        browserName: 'internet explorer',
        browserVersion: '11.0',
      },
    },

    'browserstack.safari': {
      extends: 'browserstack',
      desiredCapabilities: {
        browserName: 'safari',
      },
    },

    'browserstack.local_chrome': {
      extends: 'browserstack.local',
      desiredCapabilities: {
        browserName: 'chrome',
      },
    },

    'browserstack.local_firefox': {
      extends: 'browserstack.local',
      desiredCapabilities: {
        browserName: 'firefox',
      },
    },
    /// ///////////////////////////////////////////////////////////////////////////////
    // Configuration for when using the Selenium service, either locally or remote,  |
    //  like Selenium Grid                                                           |
    /// ///////////////////////////////////////////////////////////////////////////////
    // selenium_server: {
    //   // Selenium Server is running locally and is managed by Nightwatch
    //   selenium: {
    //     start_process: true,
    //     port: 4444,
    //     server_path: Services.seleniumServer
    //       ? Services.seleniumServer.path
    //       : '',
    //     cli_args: {
    //       'webdriver.gecko.driver': Services.geckodriver
    //         ? Services.geckodriver.path
    //         : '',
    //       'webdriver.chrome.driver': Services.chromedriver
    //         ? Services.chromedriver.path
    //         : '',
    //     },
    //   },
    // },

    'selenium.chrome': {
      extends: 'selenium_server',
      desiredCapabilities: {
        browserName: 'chrome',
        chromeOptions: {
          w3c: false,
        },
      },
    },

    'selenium.firefox': {
      extends: 'selenium_server',
      desiredCapabilities: {
        browserName: 'firefox',
        'moz:firefoxOptions': {
          args: [
            // '-headless',
            // '-verbose'
          ],
        },
      },
    },
  },
};

Your Environment

Executable Version
nightwatch --version 2.0.5
npm --version 6
node --version 14
Browser driver Version
NAME VERSION
OS Version
NAME VERSION