@josepmc/webdriver-manager

webdriver-manager

Usage no npm install needed!

<script type="module">
  import josepmcWebdriverManager from 'https://cdn.skypack.dev/@josepmc/webdriver-manager';
</script>

README

webdriver-manager CircleCI

Use as a dependency

To install this as a dependency: npm install -D webdriver-manager. The following is an example running webdriver-manager as a dependency. The test downloads the providers and starts the selenium server standalone as detached. After the test, it will shutdown the selenium server standalone.

import {
  Options,
  setLogLevel,
  shutdown,
  start,
  update,
} from 'webdriver-manager';

const options: Options = {
  browserDrivers: [{
    name: 'chromedriver'     // For browser drivers, we just need to use a valid
                             // browser driver name. Other possible values
                             // include 'geckodriver' and 'iedriver'.
  }],
  server: {
    name: 'selenium',
    runAsNode: true,          // If we want to run as a node. By default
                              // running as detached will set this to true.
    runAsDetach: true         // To run this in detached. This returns the
                              // process back to the parent process.
  }
};
setLogLevel('info');          // Required if we webdriver-manager to log to
                              // console. Not setting this will hide the logs.

describe('some web test', () => {
  beforeAll(async () => {
    await update(options);
    await start(options);
  });

  it('should run some web test', async () => {
    // Your async / await web test with some framework.
  });

  afterAll(async () => {
    await shutdown(options);  // Makes the web request to shutdown the server.
                              // If we do not call shutdown, the java command
                              // will still be running the server on port 4444.
  });
});

Use as a command line interface

npm i -g webdriver-manager

webdriver-manager update      // Downloads the latest binaries.
webdriver-manager start       // Starts the selenium server standalone.

Notes:

  • Installing globally will not work with Protractor if you are trying to start a Selenium Standalone server with a "local" or "directConnect", because Protractor installs its own version of webdriver-manager as a dependency.
  • Right now there is an issue with downloading the latest ChromeDriver. It might not be compatible with the current version of Chrome. The latest available version of ChromeDriver is the v74.x.x.x but this one only works with Chrome v74.x.x.x which is in Beta right now. So, if you have installed the latest stable version of Chrome (v73.x.x.x) you should pin that ChromeDriver version to be downloaded: webdriver-manager update --versions.chrome=73.0.3683.68. To find out the latest version, check out http://chromedriver.chromium.org/ .

The command line interface help commands

To get a list of commands for webdriver-manager, use the help flag.

webdriver-manager --help
webdriver-manager [command]

Commands:
  webdriver-manager clean     Removes downloaded files from the out_dir.
  webdriver-manager shutdown  Shutdown a local selenium server with GET request
  webdriver-manager start     Start up the selenium server.
  webdriver-manager status    List the current available binaries.
  webdriver-manager update    Install or update selected binaries.

Options:
  --version  Show version number                                       [boolean]
  --help     Show help                                                 [boolean]

To get a list of options that can be passed to the webdriver-manager update command, use the help flag.

webdriver-manager update --help
webdriver-manager update

Install or update selected binaries.

Options:
  --version              Show version number                           [boolean]
  --help                 Show help                                     [boolean]
  --out_dir              Location of output.                            [string]
  --chrome               Install or update chromedriver.
                                                       [boolean] [default: true]
  --gecko                Install or update geckodriver.[boolean] [default: true]
  --github_token         Use a GitHub token to prevent rate limit issues.
                                                                        [string]
  --iedriver             Install or update ie driver. [boolean] [default: false]
  --ignore_ssl           Ignore SSL certificates.                      [boolean]
  --log_level            The log level of this CLI.   [string] [default: "info"]
  --proxy                Use a proxy server to download files.          [string]
  --standalone           Install or update selenium server standalone.
                                                       [boolean] [default: true]
  --versions.chrome      The chromedriver version.                      [string]
  --versions.gecko       The geckodriver version.                       [string]
  --versions.ie          The ie driver version.                         [string]
  --versions.standalone  The selenium server standalone version.        [string]