selenium-webdriver
Version:
The official WebDriver JavaScript bindings from the Selenium project
106 lines (75 loc) • 3.22 kB
Markdown
JavaScript language bindings for [Selenium WebDriver](https://www.selenium.dev).
Selenium automates browsers for testing and web-based task automation.
Requires Node.js >= 22.
```bash
npm install selenium-webdriver
```
```javascript
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.
```javascript
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](https://www.selenium.dev/documentation/grid/)
or standalone server, point the Builder at the server URL, or set
`SELENIUM_REMOTE_URL`:
```javascript
let driver = new Builder().forBrowser(Browser.CHROME).usingServer('http://localhost:4444').build()
```
```bash
SELENIUM_REMOTE_URL="http://localhost:4444" node script.js
```
`selenium-webdriver` supports the Node.js versions under active upstream
support. Each is supported until its
[](https://github.com/nodejs/release#release-schedule) 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
[](https://github.com/bazel-contrib/rules_nodejs); issues and pull
requests are welcome for any supported version.
- [Getting Started](https://www.selenium.dev/documentation/webdriver/getting_started/)
- [JavaScript API Docs](https://www.selenium.dev/selenium/docs/api/javascript/)
- [Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/)
- [Selenium Grid](https://www.selenium.dev/documentation/grid/)
- [Selenium Chat](https://www.selenium.dev/support/#ChatRoom)
- [GitHub Issues](https://github.com/SeleniumHQ/selenium/issues)
Contributions are welcome via [GitHub](https://github.com/SeleniumHQ/selenium/) pull requests.
See the [source code](https://github.com/SeleniumHQ/selenium/tree/trunk/javascript/selenium-webdriver) for this binding.
- [npm](https://www.npmjs.com/package/selenium-webdriver)
- [Documentation](https://www.selenium.dev/documentation/?tab=javascript)
Licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).