@@ -16,31 +16,39 @@ var assert = require('chai').assert;
1616var reporter = require ( 'cucumber-html-reporter' ) ;
1717var cucumberJunit = require ( 'cucumber-junit' ) ;
1818
19+ // drivers
20+ var FireFoxDriver = require ( './firefoxDriver.js' ) ;
21+ var PhantomJSDriver = require ( './phantomDriver.js' ) ;
22+ var ChromeDriver = require ( './chromeDriver' ) ;
23+
1924/**
2025 * create the selenium browser based on global var set in index.js
26+ * @returns {ThenableWebDriver } selenium web driver
2127 */
2228function getDriverInstance ( ) {
2329
2430 var driver ;
31+
2532 switch ( browserName || '' ) {
2633
2734 case 'firefox' : {
28- driver = require ( "./firefoxDriver" ) ( ) ;
35+ driver = new FireFoxDriver ( ) ;
2936 } break ;
3037
3138 case 'phantomjs' : {
32- driver = require ( "./phantomDriver" ) ( ) ;
39+ driver = new PhantomJSDriver ( ) ;
3340 } break ;
3441
3542 case 'chrome' : {
36- driver = require ( "./chromeDriver" ) ( ) ;
43+ driver = new ChromeDriver ( ) ;
3744 } break ;
3845
3946 // try to load from file
4047 default : {
4148 var driverFileName = path . resolve ( process . cwd ( ) , browserName ) ;
49+
4250 if ( ! fs . isFileSync ( driverFileName ) ) {
43- throw " Could not find driver file: " + driverFileName ;
51+ throw new Error ( ' Could not find driver file: ' + driverFileName ) ;
4452 }
4553 driver = require ( driverFileName ) ( ) ;
4654 }
@@ -60,16 +68,16 @@ function World() {
6068
6169 // create a list of variables to expose globally and therefore accessible within each step definition
6270 var runtime = {
63- driver : null , // the browser object
64- selenium : selenium , // the raw nodejs selenium driver
65- By : selenium . By , // in keeping with Java expose selenium By
66- by : selenium . By , // provide a javascript lowercase version
67- until : selenium . until , // provide easy access to selenium until methods
68- expect : expect , // expose chai expect to allow variable testing
69- assert : assert , // expose chai assert to allow variable testing
70- trace : consoleInfo , // expose an info method to log output to the console in a readable/visible format
71- page : global . page || { } , // empty page objects placeholder
72- shared : global . shared || { } // empty shared objects placeholder
71+ driver : null , // the browser object
72+ selenium : selenium , // the raw nodejs selenium driver
73+ By : selenium . By , // in keeping with Java expose selenium By
74+ by : selenium . By , // provide a javascript lowercase version
75+ until : selenium . until , // provide easy access to selenium until methods
76+ expect : expect , // expose chai expect to allow variable testing
77+ assert : assert , // expose chai assert to allow variable testing
78+ trace : consoleInfo , // expose an info method to log output to the console in a readable/visible format
79+ page : global . page || { } , // empty page objects placeholder
80+ shared : global . shared || { } // empty shared objects placeholder
7381 } ;
7482
7583 // expose properties to step definition methods via global variables
@@ -81,6 +89,7 @@ function World() {
8189}
8290
8391function createGlobalObjects ( ) {
92+
8493 // import shared objects from multiple paths (after global vars have been created)
8594 if ( global . sharedObjectPaths && Array . isArray ( global . sharedObjectPaths ) && global . sharedObjectPaths . length > 0 ) {
8695
0 commit comments