title: Error running Selenium automatically from Nightwatch.js with Firefox
body: <p>I want to start Selenium Server automatically when I run a nightwatch.js test case. I changed the selenium settings on nightwatch.json to:</p>
  
  <pre><code>  "selenium" : {
      "start_process" : true,
      "server_path" : "./selenium/selenium391.jar",
      "log_path" : "C:/Projects/reports",
      "host" : "127.0.0.1",
      "port" : 4444,
      "cli_args" : {
        "webdriver.chrome.driver" : "./selenium/chromedriver.exe",
        "webdriver.ie.driver" : "./selenium/IEDriverServer.exe",
        "webdriver.firefox.profile" : "./selenium/geckodriver.exe"
      }
    },
  </code></pre>
  
  <p>This configuration works when I use Chrome as browser. However I got an error when I run it using Firefox:</p>
  
  <pre><code>ERROR Response 500 POST /wd/hub/session (312ms) { value:
     { message: 'Unable to create new service: GeckoDriverService\nBuild info: ver
  sion: \'3.9.1\', revision: \'63f7b50\', time: \'2018-02-07T22:42:28.403Z\'\nSyst
  em info: host: \'IBS-PC192\', ip: \'192.168.1.115\', os.name: \'Windows 7\', os.
  arch: \'x86\', os.version: \'6.1\', java.version: \'1.8.0_112\'\nDriver info: dr
  iver.version: unknown',
       error: 'session not created' },
    status: 33 }
  </code></pre>
  
  <p>If I run the Selenium Server manually, the nightwatch test works on Firefox. How do I resolve this?</p>
  
  <p><strong>nightwatch.json file:</strong> for Firefox</p>
  
  <pre><code>{
    "src_folders" : ["tests"],
    "output_folder" : "reports",
    "custom_commands_path" : "",
    "page_objects_path" : "",
    "custom_assertions_path" : "",
    "globals_path" : "C:/Projects/global/globals.js",
    "live_output" : false,
    "parallel_process_delay" : 10,
    "disable_colors": false,
    "test_workers" : false,
  
    "selenium" : {
      "start_process" : true,
      "server_path" : "./selenium/selenium391.jar",
      "log_path" : "C:/Projects/reports",
      "host" : "127.0.0.1",
      "port" : 4444,
      "cli_args" : {
        "webdriver.chrome.driver" : "./selenium/chromedriver.exe",
        "webdriver.ie.driver" : "./selenium/IEDriverServer.exe",
        "webdriver.firefox.profile" : "./selenium/geckodriver.exe"
      }
    },
  
    "test_settings" : {
      "default" : {
        "launch_url" : "http://localhost",
        "selenium_host" : "127.0.0.1",
        "selenium_port" : 4444,
        "silent" : true,
        "disable_colors": false,
        "screenshots" : {
          "enabled" : false,
          "path" : ""
        },
        "desiredCapabilities" : {
          "browserName" : "firefox",
          "javascriptEnabled" : true,
          "acceptSslCerts" : true
        }
      },
  </code></pre>
  
  <p><strong>The content of selenium-debug.log</strong></p>
  
  <pre><code>14:24:00.791 INFO - Selenium build info: version: '3.9.1', revision: '63f7b50'
  14:24:00.791 INFO - Launching a standalone Selenium Server on port 4444
  2018-02-16 14:24:00.853:INFO::main: Logging initialized @280ms to org.seleniumhq.jetty9.util.log.StdErrLog
  2018-02-16 14:24:00.962:INFO:osjs.Server:main: jetty-9.4.7.v20170914, build timestamp: 2017-11-21T22:27:37+01:00, git hash: 82b8fb23f757335bb3329d540ce37a2a2615f0a8
  2018-02-16 14:24:00.978:WARN:osjs.SecurityHandler:main: ServletContext@o.s.j.s.ServletContextHandler@5ed7a6{/,null,STARTING} has uncovered http methods for path: /
  2018-02-16 14:24:00.978:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@5ed7a6{/,null,AVAILABLE}
  2018-02-16 14:24:01.352:INFO:osjs.AbstractConnector:main: Started ServerConnector@18f65a4{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
  2018-02-16 14:24:01.352:INFO:osjs.Server:main: Started @782ms
  14:24:01.352 INFO - Selenium Server is up and running on port 4444
  2018-02-16 14:24:01.540:INFO:osjshC.ROOT:qtp17048053-10: org.openqa.selenium.remote.server.WebDriverServlet-132ec19: Initialising WebDriverServlet
  14:24:01.618 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1e1a802
  14:24:01.618 INFO - /session: Executing POST on /session (handler: BeginSession)
  14:24:01.680 INFO - Capabilities are: Capabilities {acceptSslCerts: true, browserName: firefox, javascriptEnabled: true, name: Google Wiki}
  14:24:01.680 INFO - Capabilities {acceptSslCerts: true, browserName: firefox, javascriptEnabled: true, name: Google Wiki} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.firefox.GeckoDriverService)
  </code></pre>