Employee Spotlight
From Academia to Industry
Philipp Burckhardt recounts his journey from childhood computer fascinations, to building an e-learning platform at Carnegie Mellon University, and on to his current role at Socket.
@wdio/types
Advanced tools
Utility package providing type information for a variety of WebdriverIO interfaces
Package description
@wdio/types is a TypeScript type definitions package for WebdriverIO, a popular automation test framework. It provides type definitions for various WebdriverIO components, making it easier to write type-safe code when using WebdriverIO.
Type Definitions for WebdriverIO Configuration
This feature provides type definitions for WebdriverIO configuration objects, ensuring that the configuration adheres to the expected structure and types.
const config: WebdriverIO.Config = { runner: 'local', specs: ['./test/specs/**/*.js'], capabilities: [{ browserName: 'chrome' }] };
Type Definitions for WebdriverIO Commands
This feature provides type definitions for WebdriverIO commands, allowing for type-safe interactions with the browser and elements.
browser.url('https://example.com'); const title: string = browser.getTitle();
Type Definitions for WebdriverIO Hooks
This feature provides type definitions for WebdriverIO hooks, ensuring that hooks are implemented with the correct parameters and return types.
const hooks: WebdriverIO.Hooks = { before: (capabilities, specs) => { console.log('Before hook'); } };
WebdriverIO is the main package for the WebdriverIO framework, providing the core functionality for browser automation. While @wdio/types focuses on type definitions, webdriverio provides the actual implementation of the automation commands and features.
selenium-webdriver is the official JavaScript implementation of the Selenium WebDriver API. It provides similar browser automation capabilities as WebdriverIO but does not come with built-in TypeScript type definitions, making @wdio/types a better choice for TypeScript users.
Cypress is an end-to-end testing framework that provides a different approach to browser automation compared to WebdriverIO. It comes with built-in TypeScript support, but its API and architecture differ significantly from WebdriverIO.
Readme
This package contains a bunch of TypeScript types for internal WebdriverIO consumption. Feel free however to use them in your TypeScript project too.
To install this package from NPM run:
npm i @wdio/types
The package exports the following major type bundles: Capabilities
, Clients
, Options
, Services
, Frameworks
and Reporters
. A lot of them are very WebdriverIO specific but you can leverage some, e.g.
import type { Capabilities } from '@wdio/types';
const w3cCaps: Capabilities.W3CCapabilities = {
alwaysMatch: {...},
firstMatch: [],
// fails with "Object literal may only specify known properties, and 'invalid' does not exist in type 'W3CCapabilities'.ts(2322)"
invalid: 42
}
For details please take a look into the individual files.
For more information on WebdriverIO see the homepage.
FAQs
Utility package providing type information for a variety of WebdriverIO interfaces
The npm package @wdio/types receives a total of 1,924,130 weekly downloads. As such, @wdio/types popularity was classified as popular.
We found that @wdio/types demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Employee Spotlight
Philipp Burckhardt recounts his journey from childhood computer fascinations, to building an e-learning platform at Carnegie Mellon University, and on to his current role at Socket.
Security News
Git dependencies in open source packages can introduce significant risks, including lack of version control, stability issues, dependency drift, and difficulty in auditing, making them potential targets for supply chain attacks.
Security News
Node.js has added experimental support for TypeScript, a move that highlights the growing importance of TypeScript in modern development.