What is webdriver-manager?
The webdriver-manager npm package is a tool for managing WebDriver binaries. It is commonly used to download, update, and start WebDriver binaries for Selenium WebDriver, making it easier to set up and manage the necessary components for running automated browser tests.
What are webdriver-manager's main functionalities?
Download WebDriver binaries
This feature allows you to download the necessary WebDriver binaries for your browser. The `update` method fetches the latest versions of the binaries and stores them locally.
const webdriverManager = require('webdriver-manager');
webdriverManager.update();
Start WebDriver server
This feature starts the WebDriver server, which is necessary for running Selenium WebDriver tests. The `start` method launches the server and makes it ready to accept WebDriver commands.
const webdriverManager = require('webdriver-manager');
webdriverManager.start();
Stop WebDriver server
This feature stops the WebDriver server. The `shutdown` method gracefully stops the server, ensuring that all resources are properly released.
const webdriverManager = require('webdriver-manager');
webdriverManager.shutdown();
Other packages similar to webdriver-manager
selenium-standalone
The selenium-standalone package is similar to webdriver-manager in that it helps manage Selenium WebDriver binaries. It provides commands to install, start, and stop the Selenium server. Compared to webdriver-manager, selenium-standalone offers more flexibility in configuring the Selenium server and supports a wider range of browsers and versions.
chromedriver
The chromedriver package is specifically designed to manage the ChromeDriver binary. It allows you to download, update, and start the ChromeDriver server. While it is more limited in scope compared to webdriver-manager, it is a good choice if you only need to work with Chrome.
geckodriver
The geckodriver package is similar to chromedriver but is focused on managing the GeckoDriver binary for Firefox. It provides functionality to download, update, and start the GeckoDriver server. Like chromedriver, it is more specialized and limited in scope compared to webdriver-manager.
webdriver-manager
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.
Note: Installing globally will not work with Protractor if you are trying to
start a Selenium Standalone server with a "local" or "directConnect". It will
not work for these since Protractor is looking files downloaded locally to
the project.
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]