Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
@wdio/types
Advanced tools
Utility package providing type information for a variety of WebdriverIO interfaces
@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.
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
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.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.