JavaScript language bindings for Selenium WebDriver. Selenium automates browsers for testing and web-based task automation.
Requires Node.js >= 20.
npm install selenium-webdriver
const { Builder, Browser } = require('selenium-webdriver') ;(async function example() { let driver = await new Builder().forBrowser(Browser.CHROME).build() try { await driver.get('https://www.selenium.dev') console.log(await driver.getTitle()) } finally { await driver.quit() } })()
Selenium Manager automatically handles browser driver installation — no manual driver setup required.
The Builder sets default options for all browsers in a single chain; options for non-selected browsers are dropped at build() time. The target browser can be swapped at runtime via the SELENIUM_BROWSER environment variable.
const { Builder, Browser } = require('selenium-webdriver') const chrome = require('selenium-webdriver/chrome') const firefox = require('selenium-webdriver/firefox') let driver = new Builder() .forBrowser(Browser.FIREFOX) .setChromeOptions(new chrome.Options()) .setFirefoxOptions(new firefox.Options()) .build()
To run scripts against a Selenium Grid or standalone server, point the Builder at the server URL, or set SELENIUM_REMOTE_URL:
let driver = new Builder().forBrowser(Browser.CHROME).usingServer('http://localhost:4444').build()
SELENIUM_REMOTE_URL="http://localhost:4444" node script.js
Each selenium-webdriver release targets the latest semver-minor of Node's LTS and Current releases.
| Level | Guarantee |
|---|---|
| supported | API compatible without runtime flags; bugs investigated and fixed. |
| best effort | Bugs investigated as time permits; API compatibility only where required. |
| unsupported | Bug reports closed as will-not-fix; API compatibility not guaranteed. |
Versions older than the active LTS, unstable release branches (e.g. v.Next), and semver-major Node releases outside the LTS / Current pair are unsupported.
Contributions are welcome via GitHub pull requests. See the source code for this binding.
Licensed under the Apache License 2.0.