4

I am able to run my tests with Firefox using the following command:

 nightwatch -t tests/test4.js   

My nightwatchjs.json config file:

{
  "src_folders" : ["tests"],
  "output_folder" : "reports",
  "custom_commands_path" : "",
  "custom_assertions_path" : "",
  "globals_path" : "",

  "selenium" : {
    "start_process" : true,
    "server_path" : "selenium-server-standalone-2.44.0.jar",
    "log_path" : "",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "drivers/chromedriver"
    }  
  },

  "test_settings" : {
    "default" : {
      "launch_url" : "http://localhost",
      "selenium_port"  : 4444,
      "selenium_host"  : "localhost",
      "silent": true,
      "screenshots" : {
        "enabled" : false,
        "path" : ""
      },
      "desiredCapabilities": {
        "browserName": "firefox",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    },

    "chrome" : {
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    }
  }
}

However I can't run the tests with Chrome. Here is the command:

nightwatch -t tests/test4.js -e chrome --verbose

And the output:

INFO Request: POST /wd/hub/session 
 - data:  {"desiredCapabilities":{"browserName":"chrome","javascriptEnabled":true,"acceptSslCerts":true,"platform":"ANY","name":"Test4"}} 
 - headers:  {"Content-Type":"application/json; charset=utf-8","Content-Length":127}
ERROR Response 500 POST /wd/hub/session{ sessionId: null,
  status: 13,
  state: 'unhandled error',
  value: 
   { message: null,
     localizedMessage: null,
     cause: null,
     class: 'java.util.concurrent.TimeoutException',
     hCode: 1023736867,
     screen: null },
  class: 'org.openqa.selenium.remote.Response',
  hCode: 31447144 }

For some reasons, the same main configuration options work for Firefox but do not work for Chrome. Does anybody have the same issue?

Thanks, Paul

Paul
  • 7,157
  • 6
  • 32
  • 37

1 Answers1

2

Paul!) Try use selenium CLI arguments in chrome "desiredCapabilities" block. And specify path to your chromedriver binary file. or you can make it if add it in selenium block

"cli_args" : {
      "webdriver.chrome.driver" : "<path to chromedriver>"
    }   

http://nightwatchjs.org/guide#settings-file for more info.

But I prefer run selenium server using bash script something like that

#!/bin/bash
all="false"
chrome="false"
firefox="false"
phantom="false"
for var in "$@"
do
    if [ "$var" == "firefox" ];
    then
        firefox="true"
    fi
    if [ "$var" == "chrome" ];
    then
        chrome="true"
    fi
    if [ "$var" == "phantomjs" ];
    then
        phantom="true"
    fi
    if [ "$var" == "all" ];
    then
        all="true"
        firefox="true"
        chrome="true"
        phantom="true"
    fi
done

if [ "$firefox" == "true" ] && [ "$phantom" == "true" ] && [ "$chrome" == "true" ];
then
    all="true"
fi

if [ "$#" -eq 0 ];
then
    firefox="true"
fi

echo Selenium will started for chrome: "$chrome"
echo Selenium will started for firefox: "$firefox"
echo Selenium will started for phantomjs: "$phantom"
echo Selenium will started for all browsers: "$all"

if [ "$chrome" == "true" ];
then
    nohup java -jar lib/selenium-server-standalone-2.44.0.jar -Dwebdriver.chrome.driver="lib/chromedriver"&
    echo $! > sel_pid_head
    echo "Selenium server for Chrome and FireFox started"
    chrome="false"
    firefox="false"
fi

if [ "$firefox" == "true" ];
then
    nohup java -jar lib/selenium-server-standalone-2.44.0.jar&
    echo $! > sel_pid_head
    echo "Selenium server for FireFox started"
    firefox="false"
fi

if [ "$all" == "true" ];
then
    nohup java -jar lib/selenium-server-standalone-2.44.0.jar -role hub -port 4455&
    echo $! > sel_pid_headless
    echo "Selenium server for PhantomJS started"
    echo "Waiting 3 sec to register ghost driver into Selenium hub"
    sleep 3
    nohup phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://127.0.0.1:4455&
    echo "PhantomJS registred in Selenium Server"
    echo $! > ghost_pid
    phantom="false"
    all="false"
fi

if [ "$phantom" == "true" ]
then
    nohup java -jar lib/selenium-server-standalone-2.44.0.jar -role hub -port 4455&
    echo $! > sel_pid_headless
    echo "Selenium server for PhantomJS started"
    echo "Waiting 3 sec to register ghost driver into Selenium hub"
    sleep 3
    nohup phantomjs --webdriver=8080 --webdriver-selenium-grid-hub=http://127.0.0.1:4455&
    echo "PhantomJS registred in Selenium Server"
    echo $! > ghost_pid
    phantom="false"
fi
Andrew Kochnev
  • 956
  • 2
  • 7
  • 10
  • Im having a similar issue here... i followed your instructions to add the binary file path (not sure if mine is correct) when i try to run a test using the `-e chrome` i get the following error – chrismillah May 22 '15 at 15:42
  • @r00k are you started selenium server from script with chrome param before run nightwatch? – Andrew Kochnev Jun 02 '15 at 13:37