A flexible Node.js client for the WebDriver/Selenium 2 protocol, supporting multiple programming paradigms.
WD.js is a Node.js client library for the WebDriver/Selenium 2 protocol, which allows developers to automate browser interactions for testing and scripting. It provides a low-level, flexible interface to control browsers via the Selenium server, supporting multiple programming paradigms like callbacks, promises, and generators. The library solves the problem of browser automation by offering a direct implementation of the WebDriver specification without imposing a rigid framework.
Node.js developers and QA engineers who need a customizable client for Selenium-based browser automation, especially those integrating with cloud testing services like Sauce Labs or BrowserStack.
Developers choose WD.js for its flexibility and control over the WebDriver protocol, allowing them to adapt the library to their preferred coding style (async, promises, chains). It’s a lightweight alternative to more opinionated frameworks, ideal for custom automation scripts and integration into existing test suites.
A node.js client for webdriver/selenium 2.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports pure async callbacks, Q promises, and generator-based wrappers like Yiewd, allowing developers to choose their preferred paradigm, as demonstrated in the usage examples.
Implements the Selenium JsonWireProtocol and parts of the Mobile JsonWireProtocol draft, ensuring comprehensive browser and mobile device control for automation tasks.
Connects easily to services like Sauce Labs and BrowserStack via URL strings, objects, or indexed parameters, simplifying remote testing setups as shown in initialization examples.
Allows adding async, promise, or promise chain methods to browser or element prototypes using functions like addAsyncMethod, enabling tailored automation workflows.
Requires external Selenium server installation and management, as noted in the install section, adding complexity compared to frameworks that bundle or automate this.
The README itself suggests webdriver.io as a more polished and active alternative, indicating potential stagnation and fewer updates or community-driven features.
Element function chaining has nuanced scope propagation rules (e.g., using '<' or '>' operators), which can be confusing and error-prone without deep API understanding.