w3c-webdriver
  • Introduction
  • Capabilities
  • Sessions
  • Timeouts
  • Navigation
  • Contexts
  • Elements
  • Document
  • Cookies
  • Actions
  • User prompts
  • Screen capture
  • Examples
    • Cucumber Functional Tests
  • Resources
    • GitHub
    • WebDriver spec
    • MDN docs
Powered by GitBook
On this page
  • Features
  • Getting started
  • 1. Install the package
  • 2. Install a browser driver for WebDriver protocol
  • 3. Start the driver as described in the docs
  • 4. Control the browser through WebDriver protocol
  • We are using

Was this helpful?

Introduction

NextCapabilities

Last updated 3 years ago

Was this helpful?

JavaScript bindings that conform to the for controlling web browsers.

Features

  • Minimalistic promise based REST client.

  • One-to-one mapping to WebDriver API endpoints

  • Written in TypeScript for type safety, autocomplete and IntelliSense documentation

  • Full feature coverage over 55 WebDriver endpoints

  • 100% test coverage in real browsers (Chrome, Firefox, Safari, Internet Explorer)

  • Tested on Ubuntu, Windows and MacOS

Getting started

1. Install the package

npm install w3c-webdriver

2. Install a browser driver for WebDriver protocol

  • Chrome -

  • Firefox -

  • Safari -

  • Internet Explorer -

For example in case of Google Chrome or its headless version you can do.

npm install chromedriver

3. Start the driver as described in the docs

4. Control the browser through WebDriver protocol

const { newSession } = require('w3c-webdriver');

let session;

(async () => {
  try {
    session = await newSession({
      url: 'http://localhost:4444',
      capabilities: {
        alwaysMatch: {
          browserName: 'chrome'
        }
      }
    });
    await session.navigateTo('http://localhost:8080');
    const input = await session.findElement(
      'css selector',
      '[name="first-name"]'
    );
    await input.sendKeys('Hello World');
  } catch (err) {
    console.log(err.stack);
  } finally {
    session.deleteSession();
  }
})();

We are using

Also you can manage the drivers using

We are using for testing the Selenium support of current package. BrowserStack loves open source and has sponsored thousands of projects. They offered us a free account as we're an open source project. This makes testing very easy on different browsers and various platforms including real mobile devices.

W3C WebDriver standard
chromedriver
geckodriver
safaridriver
iedriver
webdriver-manager
BrowserStack
BrowserStack