/grunt-selenium-standalone

Grunt tasks for running a standalone Selenium server using the popular selenium-standalone package

Primary LanguageJavaScriptMIT LicenseMIT

@prantlf/grunt-selenium-standalone

Grunt tasks for running a standalone Selenium server using the popular selenium-standalone package

This is a fork of the original project using the latest versions of dependent modules, especially selenium-standalone, which needed a fix for usage with the latesr Selenium web driver.

Getting Started

This plugin requires Grunt >=1.0.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install @prantlf/grunt-selenium-standalone --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('@prantlf/grunt-selenium-standalone');

The "selenium_standalone" task

Configuration overview

In your project's Gruntfile, add a section named selenium_standalone to the data object passed into grunt.initConfig().

grunt.initConfig({
  selenium_standalone: {
    options: {
      stopOnExit: true
    }
    your_target: {
      seleniumVersion: '3.141.59',
      seleniumDownloadURL: 'http://selenium-release.storage.googleapis.com',
      drivers: {
        chrome: {
          version: '81.0.4044.69',
          arch: process.arch,
          baseURL: 'http://chromedriver.storage.googleapis.com'
        },
        firefox: {
          version: '0.26.0',
          arch: process.arch,
          baseURL: 'https://github.com/mozilla/geckodriver/releases'
        },
        safari: {
          version: '2.48',
          arch: process.arch,
          baseURL: 'https://selenium-release.storage.googleapis.com'
        },
        edge: {
          version: '6.17134',
          arch: 'ia32',
          baseURL: 'https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/'
        },
        ie: {
          version: '3.150',
          arch: 'ia32',
          baseURL: 'http://selenium-release.storage.googleapis.com'
        }
      }
    }
  }
});

Command Verbs

For each target of the task selenium_standalone you can issue multiple commands with command verbs. The supported command verbs are:

  • install: installs the web drivers which were specified for a given target
  • start: starts the selenium server
  • stop: stops the selenium server

Options

stopOnExit

For each target, you can specify if the selenium server should stop automatically when the executing Grunt task run completes or fails. The default is false.

Contributing

Run tests

With Chrome:

grunt test

With Firefox:

BROWSER=firefox grunt test

Release History

  • 1.0.1: Fixed an issue with passing the seleniumDownloadURL config property through
  • 1.0.0: Updates to better support option pass-through to the underlying selenium-standalone module
  • 0.1.0: initial implementation. Commands: install, start, stop are implemented.