tree: 0391aaddf90dbd2e8d4ad5cecc69a0af92fddc7c
  1. bidi/
  2. common/
  3. devtools/
  4. example/
  5. http/
  6. io/
  7. lib/
  8. net/
  9. private/
  10. remote/
  11. test/
  12. testing/
  13. tools/
  14. .npmignore
  15. .prettierignore
  16. .prettierrc
  17. AGENTS.md
  18. bidi_schema_diff_test.mjs
  19. BUILD.bazel
  20. CHANGES.md
  21. chrome.js
  22. chromium.js
  23. edge.js
  24. eslint.config.js
  25. extract_bidi_anchors.mjs
  26. firefox.js
  27. generate_bidi.mjs
  28. ie.js
  29. index.js
  30. jsdoc_conf.json
  31. normalize_bidi_ast.mjs
  32. normalize_bidi_ast_test.mjs
  33. package.json
  34. project_bidi_schema.mjs
  35. project_bidi_schema_test.mjs
  36. proxy.js
  37. README.md
  38. safari.js
  39. TESTING.md
javascript/selenium-webdriver/README.md

selenium-webdriver

JavaScript language bindings for Selenium WebDriver. Selenium automates browsers for testing and web-based task automation.

Requires Node.js >= 22.

Installation

npm install selenium-webdriver

Quick Start

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.

Configuring the Builder

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()

Running Against a Remote Server

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

Node Support Policy

selenium-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.jsSupport ends
222027-04-30
242028-04-30
262029-04-30

CI tests the earliest and latest supported versions available in rules_nodejs; issues and pull requests are welcome for any supported version.

Documentation

Support

Contributing

Contributions are welcome via GitHub pull requests. See the source code for this binding.

Links

License

Licensed under the Apache License 2.0.