tree: f81573edea5069c6d4a8042a380d228f7cd9efbc
  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. firefox.js
  26. generate_bidi.mjs
  27. ie.js
  28. index.js
  29. jsdoc_conf.json
  30. normalize_bidi_ast.mjs
  31. normalize_bidi_ast_test.mjs
  32. package.json
  33. project_bidi_schema.mjs
  34. project_bidi_schema_test.mjs
  35. proxy.js
  36. README.md
  37. safari.js
  38. 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 >= 20.

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

Each selenium-webdriver release targets the latest semver-minor of Node's LTS and Current releases.

LevelGuarantee
supportedAPI compatible without runtime flags; bugs investigated and fixed.
best effortBugs investigated as time permits; API compatibility only where required.
unsupportedBug 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.

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.