JavaScript language bindings for Selenium WebDriver. Selenium automates browsers for testing and web-based task automation.
Requires Node.js >= 22.
npm install selenium-webdriverconst { 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.jsselenium-webdriver supports the Node.js versions under active upstream
support. Each is supported until its
end-of-life date; after
that it is unsupported.
| Node.js | Support ends |
|---|---|
| 22 | 2027-04-30 |
| 24 | 2028-04-30 |
| 26 | 2029-04-30 |
CI tests the earliest and latest supported versions available in rules_nodejs; issues and pull requests are welcome for any supported version.
Contributions are welcome via GitHub pull requests. See the source code for this binding.
Licensed under the Apache License 2.0.