Пример #1
0
  grunt.registerMultiTask('selenium', 'Run selenium server.', function () {

    var done = this.async();
    var options = this.options({
      jar: './selenium/selenium-server-standalone-2.35.0.jar',
      port: 4444
    });

    grunt.log.write('Startup selenium server standalone at 0.0.0.0:' + options.port + '...');

    var result = true;
    try{
      server = new remote.SeleniumServer(options.jar, options);
      server.start();
      grunt.log.ok();
    }catch (e) {
      grunt.log.error();
      grunt.verbose.error(e);
      result = false;
    }

    setTimeout(function() {
      done(result);
    }, 10000);
  });
 grunt.registerTask('webdriver_startup', 'startup selenium server standalone', function() {
   var done = this.async();
   var options = this.options({
     jar: __dirname + '/../bin/selenium-server-standalone-2.39.0.jar',
     port: 4444
   });
   var jar = options.jar;
   delete options.jar;
   
   grunt.log.writeln('Selenium jar: '+jar);
   grunt.log.writeln('Startup selenium server standalone at 0.0.0.0:' + options.port + '...');
   
   var result = true;
   try{
     server = new remote.SeleniumServer(jar, options);
     server.start();
     grunt.log.ok();
   }catch (e) {
     grunt.log.error();
     grunt.verbose.error(e);
     result = false;
   }
   
   setTimeout(function() {
     done(result);
   }, 10000);
   
 });
Пример #3
0
(function () {
    'use strict';

    var webdriver = require('selenium-webdriver'),
        SeleniumServer = require('selenium-webdriver/remote').SeleniumServer,
        server,
        driver,
        driverConfig;

    server = new SeleniumServer('/Users/mkaleem/Desktop/UnderArmour/selenium-server-standalone-2.42.2.jar',
        {port: 4444 });
    server.start();

    driver = new webdriver.Builder().
        usingServer(server.address()).
        withCapabilities(webdriver.Capabilities.firefox()).
        build();

    driver.manage().window().maximize();

    global.driver = driver;
    global.by = webdriver.By;

    module.exports = driverConfig;


}());
Пример #4
0
/**
 *
 * @param callback
 */
function start (browser, callback) {
	//process env. selenium requires 'SELENIUM_SERVER_JAR' & 'PATH' ENV have set proper way.
	//ref : https://www.npmjs.org/package/selenium-webdriver
	process.env.SELENIUM_SERVER_JAR = seleniumJarPath;
	process.env.PATH = process.env.PATH + pathSep + fs.realpathSync(seleniumPath);

	if (browser === 'ie') {
		//start selenium server
		//selenium driver won't find IE driver without -Dwebdriver.ie.driver option.
		//in case of the other browsers (ex: chrome, ff ...), starting server can be omitted.
		var server = new SeleniumServer(seleniumJarPath, {
			port: 4444,
			args: ['-Dwebdriver.ie.driver=' + fs.realpathSync(ieDriverPath)]
		});
		server.start();

		//init driver
		driver = new webdriver.Builder().
			usingServer(server.address()).
			withCapabilities(webdriver.Capabilities.ie()).
			build();
	} else {
		//init driver
		driver = new webdriver.Builder().
			withCapabilities(webdriver.Capabilities.chrome()).
			build();
	}
	callback(driver, webdriver);
}
    grunt.registerTask('selenium:start', function(){

        // Force task into async mode and grab a handle to the "done" function.
        var done = this.async();

        var jar = require("selenium-server-standalone-jar");
        var webdriver = require("selenium-webdriver"),
            remote = require("selenium-webdriver/remote"),
            chromedriver = require("chromedriver");

        var server = new remote.SeleniumServer(jar.path, {
            host: options.selServer,
            port: options.selPort,
            args: [
                    "-Dwebdriver.chrome.driver=" + chromedriver.path,
                "-singleWindow", "-trustAllSSLCertificates", "-browserSessionReuse"
            ]
        });

        server.loopbackOnly_ = true; // force use of 127.0.0.1

        server.start().then(function(url){
            grunt.log.writeln('Selenium Standalone server started at ' + url);
            done(); // async is done.
        });

    });
Пример #6
0
gulp.task("selenium:start", function () {
    var Promise = require("bluebird");

    var deferred = Promise.defer();

    var jar = require("selenium-server-standalone-jar");
    var webdriver = require("selenium-webdriver"),
        remote = require("selenium-webdriver/remote"),
        chromedriver = require("chromedriver");

    var server = new remote.SeleniumServer(jar.path, {
        host: options.selServer,
        port: options.selPort,
        args: [
            "-Dwebdriver.chrome.driver=" + chromedriver.path,
            "-singleWindow", "-trustAllSSLCertificates", "-browserSessionReuse"
        ]
    });

    server.loopbackOnly_ = true; // force use of 127.0.0.1

    server.start().then(function (url) {
        util.puts("Selenium Standalone server started at " + url);
        deferred.resolve(server);
    });

    return deferred.promise;
});
Пример #7
0
var renderPageToBuffer = function (url, options, callback) {
    // TODO don't always start the server and throw it away again
    var server = new SeleniumServer(jar.path, {
      port: 4444
    });

    server.start();

    var driver = new webdriver.Builder()
        .usingServer(server.address())
        // .withCapabilities(webdriver.Capabilities.chrome())
        .withCapabilities(webdriver.Capabilities.phantomjs())
        .build();

    driver.get(url);

    if (options.hover) {
        hoverOverElement(options.hover, driver);
    }
    if (options.active) {
        activateElement(options.active, driver);
    }

    driver.takeScreenshot().then(function (base64Image) {
        var decodedImage = new Buffer(base64Image, 'base64');

        driver.quit();
        callback(decodedImage);
    });
};
Пример #8
0
var run = function() {
  if (config.jasmineNodeOpts.specFolders) {
    throw new Error('Using config.jasmineNodeOpts.specFolders is deprecated ' +
        'in Protractor 0.6.0. Please switch to config.specs.');
  }
  // Check the specs.
  // TODO(ralphj): Interpret patterns from the specs, e.g.
  // 'specs/*.js'
  // Probably want to use 'glob' for this, but consider the extra dependency.
  var specs = config.specs;
  for (var i = 0; i < specs.length; ++i) {
    specs[i] = path.resolve(process.cwd(), specs[i]);
    if (!fs.existsSync(specs[i])) {
      throw new Error('Test file ' + specs[i] + ' not found.');
    }
  }
  minijn.addSpecs(specs);

  if (config.sauceUser && config.sauceKey) {
    config.capabilities.username = config.sauceUser;
    config.capabilities.accessKey = config.sauceKey;
    config.seleniumAddress = 'http://' + config.sauceUser + ':' +
        config.sauceKey + '@ondemand.saucelabs.com:80/wd/hub';

    util.puts('Using SauceLabs selenium server at ' + config.seleniumAddress);
    startJasmineTests();
  } else if (config.seleniumAddress) {

    util.puts('Using the selenium server at ' + config.seleniumAddress);
    startJasmineTests();
  } else if (config.seleniumServerJar) {
    util.puts('Starting selenium standalone server...');
    if (config.chromeDriver) {
      if (!fs.existsSync(config.chromeDriver)) {
        if (fs.existsSync(config.chromeDriver + '.exe')) {
          config.chromeDriver += '.exe';
        } else {
          throw 'Could not find chromedriver at ' + config.chromeDriver;
        }
      }
      config.seleniumArgs.push(
          '-Dwebdriver.chrome.driver=' + config.chromeDriver);
    }
    server = new remote.SeleniumServer({
      jar: config.seleniumServerJar,
      args: config.seleniumArgs,
      port: config.seleniumPort
    });
    server.start().then(function(url) {

      util.puts('Selenium standalone server started at ' + url);
      config.seleniumAddress = server.address();
      startJasmineTests();
    });
  } else {
    throw new Error('You must specify either a seleniumAddress, ' +
        'seleniumServerJar, or saucelabs account.');
  }
}
Пример #9
0
    before(function (done) {
        var seleniumJar= require('selenium-server-standalone-jar');
        var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
        server = new SeleniumServer(seleniumJar.path, { port: 4444 });
        server.start();

        done();
    });
Пример #10
0
var run = function() {
  if (config.jasmineNodeOpts.specFolders) {
    throw new Error('Using config.jasmineNodeOpts.specFolders is deprecated ' +
        'in Protractor 0.6.0. Please switch to config.specs.');
  }
  var specs = config.specs;
  var resolvedSpecs = [];
  for (var i = 0; i < specs.length; ++i) {
    var matches = glob.sync(specs[i]);
    if (!matches.length) {
      throw new Error('Test file ' + specs[i] + ' did not match any files.');
    }
    for (var j = 0; j < matches.length; ++j) {
      resolvedSpecs.push(matches[j]);
    }
  }
  minijn.addSpecs(resolvedSpecs);

  if (config.sauceUser && config.sauceKey) {
    config.capabilities.username = config.sauceUser;
    config.capabilities.accessKey = config.sauceKey;
    config.seleniumAddress = 'http://' + config.sauceUser + ':' +
        config.sauceKey + '@ondemand.saucelabs.com:80/wd/hub';

    util.puts('Using SauceLabs selenium server at ' + config.seleniumAddress);
    startJasmineTests();
  } else if (config.seleniumAddress) {

    util.puts('Using the selenium server at ' + config.seleniumAddress);
    startJasmineTests();
  } else if (config.seleniumServerJar) {
    util.puts('Starting selenium standalone server...');
    if (config.chromeDriver) {
      if (!fs.existsSync(config.chromeDriver)) {
        if (fs.existsSync(config.chromeDriver + '.exe')) {
          config.chromeDriver += '.exe';
        } else {
          throw 'Could not find chromedriver at ' + config.chromeDriver;
        }
      }
      config.seleniumArgs.push(
          '-Dwebdriver.chrome.driver=' + config.chromeDriver);
    }
    server = new remote.SeleniumServer(config.seleniumServerJar, {
      args: config.seleniumArgs,
      port: config.seleniumPort
    });
    server.start().then(function(url) {

      util.puts('Selenium standalone server started at ' + url);
      config.seleniumAddress = server.address();
      startJasmineTests();
    });
  } else {
    throw new Error('You must specify either a seleniumAddress, ' +
        'seleniumServerJar, or saucelabs account.');
  }
}
Пример #11
0
  before(function () {
    // Note: you need to run from the root of the project
    // TODO: path.resolve
    server = new SeleniumServer(seleniumPath, {
      port: 4444
    });

    return server.start();
  });
Пример #12
0
  before(function () {
    // Note: you need to run from the root of the project
    // TODO: path.resolve
    server = new SeleniumServer('./vendor/selenium-server-standalone-2.41.0.jar', {
      port: 4444
    });

    return server.start();
  });
Пример #13
0
exports.getServer = function() {
	var seleniumJarDir = __dirname + '/../../node_modules/selenium-server/lib/runner/';
	var seleniumJarFileName = fs
		.readdirSync(seleniumJarDir)
		.filter(function(fn) { return fn.match(/\.jar$/); })
		[0];
	var seleniumJarPath = seleniumJarDir + seleniumJarFileName;
	var server = new SeleniumServer(seleniumJarPath, { port: 0 });
	server.start();
	return server;
};
Пример #14
0
var setUpSelenium = function() {
  var promise = webdriver.promise.defer();

  if (config.sauceUser && config.sauceKey) {
    sauceAccount = new SauceLabs({
      username: config.sauceUser,
      password: config.sauceKey
    });
  }

  if (config.seleniumAddress) {
    util.puts('Using the selenium server at ' + config.seleniumAddress);
    promise.fulfill(config.seleniumAddress);
  } else if (sauceAccount) {
    config.capabilities.username = config.sauceUser;
    config.capabilities.accessKey = config.sauceKey;
    if (!config.jasmineNodeOpts.defaultTimeoutInterval) {
      config.jasmineNodeOpts.defaultTimeoutInterval = 30 * 1000;
    }
    config.seleniumAddress = 'http://' + config.sauceUser + ':' +
        config.sauceKey + '@ondemand.saucelabs.com:80/wd/hub';

    util.puts('Using SauceLabs selenium server at ' + config.seleniumAddress);
    promise.fulfill(config.seleniumAddress);
  } else if (config.seleniumServerJar) {
    util.puts('Starting selenium standalone server...');
    if (config.chromeDriver) {
      if (!fs.existsSync(config.chromeDriver)) {
        if (fs.existsSync(config.chromeDriver + '.exe')) {
          config.chromeDriver += '.exe';
        } else {
          throw 'Could not find chromedriver at ' + config.chromeDriver;
        }
      }
      config.seleniumArgs.push(
          '-Dwebdriver.chrome.driver=' + config.chromeDriver);
    }
    server = new remote.SeleniumServer(config.seleniumServerJar, {
      args: config.seleniumArgs,
      port: config.seleniumPort
    });
    server.start().then(function(url) {

      util.puts('Selenium standalone server started at ' + url);
      config.seleniumAddress = server.address();
      promise.fulfill(config.seleniumAddress);
    });
  } else {
    throw new Error('You must specify either a seleniumAddress, ' +
        'seleniumServerJar, or saucelabs account.');
  }

  return promise;
}
Пример #15
0
    test.before(function () {
        var jar = process.env.SELENIUM;
        assert.ok(!!jar, 'SELENIUM environment variable not set');
        assert.ok(fs.existsSync(jar), 'The specified jar does not exist: ' + jar);

        server = new remote.SeleniumServer(jar, {port: 4444});
        server.start();

        driver = new webdriver.Builder().
            usingServer(server.address()).
            withCapabilities(capabilities).
            build();
    });
Пример #16
0
  test.before(function() {
    var seleniumJar = process.env.SeleniumJar || 'node_modules/webdriverjs/bin/selenium-server-standalone-2.31.0.jar';
    var seleniumPort = process.env.SeleniumPort || 4444;
    
    server = new remote.SeleniumServer({
      jar : seleniumJar,
      port : seleniumPort
    });
    server.start();

    driver = new webdriver.Builder().usingServer(server.address()).withCapabilities({
      browserName : browserName,
      ignoreProtectedModeSettings: true
    }).build();
    
  });
Пример #17
0
exports.getSeleniumBrowser = function(callback) {
    if (seleniumServer) {
        buildBrowser(callback);
    } else {
        var seleniumPath;
        if (!conf.TESTING_SELENIUM_PATH) {
            throw new Error("TESTING_SELENIUM_PATH not found in conf.json. " +
                            "Please specify path to selenium-server-standalone.jar.");
        }
        if (conf.TESTING_SELENIUM_PATH.substring(0, 1) == "/") {
            seleniumPath = conf.TESTING_SELENIUM_PATH;
        } else {
            seleniumPath = __dirname + "/../" + conf.TESTING_SELENIUM_PATH;
        }
        seleniumServer = new SeleniumServer(seleniumPath, {port: 4444});
        seleniumServer.start().then(function() { buildBrowser(callback) });
    }
}
Пример #18
0
 function getServer() {
   if (serverProps && (serverUrl.indexOf('127.0.0.1') !== -1 || serverUrl.indexOf('localhost') !== -1)) {
     //chrome and phantomjs are supported natively. i.e. no webdriver required. chromedriver or phantomjs executables must be in PATH though
     if (tgtBrowser !== 'chrome' && tgtBrowser !== 'phantomjs') {
       //make sure there is a jar file
       var jarExists = fs.existsSync(serverJar);
       if (!jarExists) {
         throw new Error('You must specify a valid SELENIUM_JAR value. The value must point to a driver executable in your file system.');
       }
       var server = new SeleniumServer(serverJar, serverProps);
       server.start();
       serverUrl = server.address();
     } else {
       serverUrl = null;
     }
   }
   return serverUrl;
 }
Пример #19
0
		function startRunner() {

			// start selenium server
			var server;
			try {
				server = new remote.SeleniumServer(seleniumServerJar, {
					port: 4444
				});
				server.start();
			} catch (e) {
				grunt.log.error();
				grunt.verbose.error(e);
				done(e);
				return;
			}

			runDiscovery(server);

		}
Пример #20
0
exports.getSeleniumBrowser = function(callback) {
    if (seleniumServer) {
        buildBrowser(callback);
    } else {
        var seleniumPath;
        if (!conf.TESTING_SELENIUM_PATH) {
            throw new Error("TESTING_SELENIUM_PATH not found in conf.json. " +
                            "Please specify path to selenium-server-standalone.jar.");
        }
        if (conf.TESTING_SELENIUM_PATH.substring(0, 1) == "/") {
            seleniumPath = conf.TESTING_SELENIUM_PATH;
        } else {
            seleniumPath = __dirname + "/../" + conf.TESTING_SELENIUM_PATH;
        }
        var opts = {port: 4444};
        if (conf.TESTING_SELENIUM_VERBOSE) {
            opts.stdio = "inherit"; // enable verbose logging
        }
        if (conf.TESTING_FIREFOX_BIN) {
            opts.jvmArgs = ["-Dwebdriver.firefox.bin=" + conf.TESTING_FIREFOX_BIN];
        }
        seleniumServer = new SeleniumServer(seleniumPath, opts);
        var isStarted = false;
        // Set the timeout to something less than a multiple of the timeout set
        // in test startups, so we get as many start up retries as we can
        // before a timeout.
        seleniumServer.start(59000).then(function() {
            isStarted = true;
            buildBrowser(callback);
        }).then(null, function(err) {
          if (!isStarted) {
            console.log("Error starting selenium, retrying.  ", err);
            seleniumServer = null;
          } else {
            console.log("Error thrown by buildBrowser; retrying.", err);
          }
          exports.getSeleniumBrowser(callback);
        });
    }
};
Пример #21
0
    before(function(done){
        //Starting this is longer than the default timeout, and duration can vary a lot
        this.timeout(60000);

        //Start the chat server with WARNING level output and giving it the requirejs we just configured,
        //so that it won't try re-configuring it.
        chatServer = nodeRequire("../chatServer");
        chatServer.start({logLevel:1, requirejs:require});

        //Make sure the selenium server's jar location environment variable has been set and exists
        var jar = process.env.SELENIUM;
        assert.ok(!!jar, 'SELENIUM environment variable not set');
        assert.ok(fs.existsSync(jar), 'The specified jar does not exist: ' + jar);

        //Start a selenium server
        seleniumServer = new SeleniumServer.SeleniumServer({jar: jar});
        seleniumServer.start();

        //Start 2 browsers, but let's try to make them both start at the same time
        driver = new webdriver.Builder().
            usingServer(seleniumServer.address()).
            withCapabilities({'browserName': 'firefox'}).
            build();
        driver2 = new webdriver.Builder().
            usingServer(seleniumServer.address()).
            withCapabilities({'browserName': 'firefox'}).
            build();

        //Also load the url once here, because the first time is a lot slower.
        //For consistency's sake, we'll make sure each driver's username
        //has been attributed before we go on, so we can guarantee who's who.
        driver.get(connectionString);
        waitForElementPresent(driver, nameConfirmationFieldLocator, 1000).then(function(){
            driver2.get(connectionString);
            waitForElementPresent(driver2, nameConfirmationFieldLocator, 1000).then(function(){
                done();
            });
        });
    });
Пример #22
0
    function _resolveSeleniumServerForDriver(driverName) {
        var startPromise;
        var isSauce = driverName.indexOf(webdriverFactory.saucePrefix) === 0;
        if (isSauce) {
            var deferred = q.defer();
            startPromise = deferred.promise;
            deferred.resolve(_sauceConnectAddress);
            return startPromise;
        }
        else {
            if (!_localSeServer) {
                _localSeServer = new SeleniumServer(__dirname + "/../lib/selenium-server-standalone.jar", {/* show errors? uncomment this stdio: 'inherit'*/});
                _localSeServer.start();
            }
            startPromise = _localSeServer.address();
            startPromise.then(function(address) {
                console.log("Got seServer address: " + address);
            });

            return startPromise;
        }
    }
Пример #23
0
 function getServer() {
   log('attempt getServer');
   //are we running the tests on the local machine?
   if (localServer === true) {
     log('test locally');
     if (tgtBrowser !== 'chrome' && tgtBrowser !== 'phantomjs') {
       //make sure there is a jar file
       var jarExists = fs.existsSync(serverJar);
       if (!jarExists) {
         error('You must specify a valid SELENIUM_JAR value. The value must point to a driver executable in your file system.');
       }
       if (serverProps.port === undefined) {
         serverProps.port = 4444;
       }
       var server = new SeleniumServer(serverJar, serverProps);
       server.start();
       serverUrl = server.address();
     } else {
       serverUrl = null;
     }
   }
   return serverUrl;
 }
Пример #24
0
 /**
  * Configure and launch (if applicable) the object's environment.
  * @public
  * @return {q.promise} A promise which will resolve when the environment is
  *     ready to test.
  */
 setupDriverEnv() {
     this.addDefaultBinaryLocs_();
     logger.info('Starting selenium standalone server...');
     let serverConf = this.config_.localSeleniumStandaloneOpts || {};
     // If args or port is not set use seleniumArgs and seleniumPort
     // for backward compatibility
     if (serverConf.args === undefined) {
         serverConf.args = this.config_.seleniumArgs || [];
     }
     if (serverConf.jvmArgs === undefined) {
         serverConf.jvmArgs = this.config_.jvmArgs || [];
     }
     else {
         if (!Array.isArray(serverConf.jvmArgs)) {
             throw new exitCodes_1.ConfigError(logger, 'jvmArgs should be an array.');
         }
     }
     if (serverConf.port === undefined) {
         serverConf.port = this.config_.seleniumPort;
     }
     // configure server
     if (this.config_.chromeDriver) {
         serverConf.jvmArgs.push('-Dwebdriver.chrome.driver=' + this.config_.chromeDriver);
     }
     this.server_ = new remote.SeleniumServer(this.config_.seleniumServerJar, serverConf);
     let deferred = q.defer();
     // start local server, grab hosted address, and resolve promise
     this.server_.start(this.config_.seleniumServerStartTimeout)
         .then((url) => {
         logger.info('Selenium standalone server started at ' + url);
         return this.server_.address();
     })
         .then((address) => {
         this.config_.seleniumAddress = address;
         deferred.resolve();
     })
         .catch((err) => {
         deferred.reject(err);
     });
     return deferred.promise;
 }
Пример #25
0
var setUpSelenium = function() {
  // TODO: This should not be tied to the webdriver promise loop, it should use
  // another promise system instead.
  var deferred = webdriver.promise.defer();

  if (config.sauceUser && config.sauceKey) {
    sauceAccount = new SauceLabs({
      username: config.sauceUser,
      password: config.sauceKey
    });
  }

  var defaultChromedriver;
  if (config.chromeDriver) {
    if (!fs.existsSync(config.chromeDriver)) {
      if (fs.existsSync(config.chromeDriver + '.exe')) {
        config.chromeDriver += '.exe';
      } else {
        throw 'Could not find chromedriver at ' + config.chromeDriver;
      }
    }
  } else {
    defaultChromedriver = path.resolve(__dirname,
        '../selenium/chromedriver');
    if (fs.existsSync(defaultChromedriver)) {
      config.chromeDriver = defaultChromedriver;
    } else if (fs.existsSync(defaultChromedriver + '.exe')) {
      config.chromeDriver = defaultChromedriver + '.exe';
    }
  }

  // Priority
  // 1) if chromeOnly, use that
  // 2) if seleniumAddress is given, use that
  // 3) if a sauceAccount is given, use that.
  // 4) if a seleniumServerJar is specified, use that
  // 5) try to find the seleniumServerJar in protractor/selenium
  if (config.chromeOnly) {
    util.puts('Using ChromeDriver directly...');
    deferred.fulfill(null);
  } else if (config.seleniumAddress) {
    util.puts('Using the selenium server at ' + config.seleniumAddress);
    deferred.fulfill(config.seleniumAddress);
  } else if (sauceAccount) {
    config.capabilities.username = config.sauceUser;
    config.capabilities.accessKey = config.sauceKey;
    if (!config.jasmineNodeOpts.defaultTimeoutInterval) {
      config.jasmineNodeOpts.defaultTimeoutInterval = 30 * 1000;
    }
    config.seleniumAddress = 'http://' + config.sauceUser + ':' +
        config.sauceKey + '@ondemand.saucelabs.com:80/wd/hub';

    util.puts('Using SauceLabs selenium server at ' + config.seleniumAddress);
    deferred.fulfill(config.seleniumAddress);
  } else {
    util.puts('Starting selenium standalone server...');

    if (!config.seleniumServerJar) {
      // Try to use the default location.
      var defaultStandalone = path.resolve(__dirname,
          '../selenium/selenium-server-standalone-' +
          require('../package.json').webdriverVersions.selenium + '.jar');
      if (!fs.existsSync(defaultStandalone)) {
        throw new Error('Unable to start selenium. ' +
        'You must specify either a seleniumAddress, ' +
        'seleniumServerJar, or saucelabs account, or use webdriver-manager.');
      } else {
        config.seleniumServerJar = defaultStandalone;
      }
    } else if (!fs.existsSync(config.seleniumServerJar)) {
      throw new Error('there\'s no selenium server jar at the specified '+
        'location. Do you have the correct version?');
    }

    if (config.chromeDriver) {
      config.seleniumArgs.push(
          '-Dwebdriver.chrome.driver=' + config.chromeDriver);
    }

    server = new remote.SeleniumServer(config.seleniumServerJar, {
      args: config.seleniumArgs,
      port: config.seleniumPort
    });
    server.start().then(function(url) {

      util.puts('Selenium standalone server started at ' + url);
      config.seleniumAddress = server.address();
      deferred.fulfill(config.seleniumAddress);
    });
  }

  return deferred.promise;
}
Пример #26
0
gulp.task('selenium', function() {
    selenium = new SeleniumServer(jar.path, {
        port: 4444
    });
    selenium.start();
});
Пример #27
0
// This allows for the use of the msl-client API
var msl = require('msl-client');

var assert = require('assert'),
    SeleniumServer = require('selenium-webdriver/remote').SeleniumServer,
    webdriver = require('selenium-webdriver');


var server = new SeleniumServer('./selenium-server-standalone-2.39.0.jar', {
    port: 4444
});
server.start();

describe('Running Selenium tests', function() {
    var client;
    this.timeout(50000);

    var callbackFunc = function(req, responseText) {
        return '[' + responseText + ']';
    }

    before(function() {
        // Builds the webdriver before the tests start.
        client = new webdriver.Builder().
        usingServer(server.address()).
        withCapabilities(webdriver.Capabilities.chrome()).build();
    });

    beforeEach(function(done) {
        // Navigate to the URL for each test and wait for the autocomplete to be present
        client.get('http://localhost:8001/msl-sample-app/index.html');
Пример #28
0
 before(function() {
     // Builds the webdriver before the tests start.
     client = new webdriver.Builder().
     usingServer(server.address()).
     withCapabilities(webdriver.Capabilities.chrome()).build();
 });
Пример #29
0
 it('[afterAll]', function() {
   driver.quit();
   server.stop();
   appServer.quit();
 });
Пример #30
0
var wd = require('selenium-webdriver');
var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;

var appServer = require('../../app.js');

var server = new SeleniumServer({
  jar: '/usr/local/bin/selenium-server-standalone-2.33.0.jar',
  port: 4444
});
server.start();

var driver = new wd.Builder()
  .usingServer(server.address())
  .withCapabilities({'browserName': 'chrome'})
  .build();

describe('In main page,', function() {
  beforeEach(function() {
    var isLoaded = false;
    var LONG_TIMEOUT_FOR_SERVER = 10000;

    driver.get('http://127.0.0.1:3000/public/index.html')
      .then(function() {
        isLoaded = true;
      });
    
    waitsFor(function() {
      return isLoaded;
    }, '', LONG_TIMEOUT_FOR_SERVER);
  });