webdriverio

  • Version 10.2.0
  • Published
  • 2.32 MB
  • 23 dependencies
  • MIT license

Install

npm i webdriverio
yarn add webdriverio
pnpm add webdriverio

Overview

Next-gen browser and mobile automation test framework for Node.js

Index

Variables

Functions

Classes

Interfaces

Enums

Type Aliases

Variables

variable buttonValue

const buttonValue: readonly [0, 1, 2, 'left', 'middle', 'right'];

    variable DEFAULT_DURATION_MOVES

    const DEFAULT_DURATION_MOVES: WeakSet<object>;
    • Moves whose duration came from the default rather than the caller. Tracked out of band so the Classic wire format stays unchanged.

    variable deviceDescriptorsSource

    const deviceDescriptorsSource: {
    'Blackberry PlayBook': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Blackberry PlayBook landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'BlackBerry Z30': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'BlackBerry Z30 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy Note 3': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy Note 3 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy Note II': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy Note II landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S III': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S III landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S5': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S5 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S8': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S8 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S9 +': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy S9 + landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy Tab S4': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Galaxy Tab S4 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad(gen 5)': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad(gen 5) landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad(gen 6)': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad(gen 6) landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad(gen 7)': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad(gen 7) landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad Mini': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad Mini landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad Pro 11': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPad Pro 11 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 6': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 6 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 6 Plus': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 6 Plus landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 7': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 7 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 7 Plus': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 7 Plus landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 8': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 8 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 8 Plus': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 8 Plus landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone SE': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone SE landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone X': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone X landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone XR': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone XR landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 11': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 11 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 11 Pro': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 11 Pro landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 11 Pro Max': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 11 Pro Max landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 Pro': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 Pro landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 Pro Max': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 Pro Max landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 Mini': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 12 Mini landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 Pro': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 Pro landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 Pro Max': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 Pro Max landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 Mini': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 13 Mini landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 Plus': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 Plus landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 Pro': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 Pro landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 Pro Max': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 14 Pro Max landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 Plus': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 Plus landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 Pro': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 Pro landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 Pro Max': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'iPhone 15 Pro Max landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Kindle Fire HDX': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Kindle Fire HDX landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'LG Optimus L70': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'LG Optimus L70 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Microsoft Lumia 550': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Microsoft Lumia 550 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Microsoft Lumia 950': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Microsoft Lumia 950 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 10': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 10 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 4': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 4 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 5': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 5 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 5X': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 5X landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 6': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 6 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 6P': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 6P landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 7': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nexus 7 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nokia Lumia 520': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nokia Lumia 520 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nokia N9': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Nokia N9 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 2': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 2 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 2 XL': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 2 XL landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 3': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 3 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 4': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 4 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 4a(5G)': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 4a(5G) landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 5': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 5 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 7': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Pixel 7 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Moto G4': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Moto G4 landscape': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Chrome HiDPI': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Edge HiDPI': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Firefox HiDPI': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Safari': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Chrome': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Edge': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    'Desktop Firefox': {
    userAgent: string;
    viewport: { width: number; height: number };
    deviceScaleFactor: number;
    isMobile: boolean;
    hasTouch: boolean;
    };
    };

      variable Key

      const Key: {
      readonly Ctrl: 'WDIO_CONTROL';
      readonly NULL: '';
      readonly Cancel: '';
      readonly Help: '';
      readonly Backspace: '';
      readonly Tab: '';
      readonly Clear: '';
      readonly Return: '';
      readonly Enter: '';
      readonly Shift: '';
      readonly Control: '';
      readonly Alt: '';
      readonly Pause: '';
      readonly Escape: '';
      readonly Space: '';
      readonly PageUp: '';
      readonly PageDown: '';
      readonly End: '';
      readonly Home: '';
      readonly ArrowLeft: '';
      readonly ArrowUp: '';
      readonly ArrowRight: '';
      readonly ArrowDown: '';
      readonly Insert: '';
      readonly Delete: '';
      readonly Semicolon: '';
      readonly Equals: '';
      readonly Numpad0: '';
      readonly Numpad1: '';
      readonly Numpad2: '';
      readonly Numpad3: '';
      readonly Numpad4: '';
      readonly Numpad5: '';
      readonly Numpad6: '';
      readonly Numpad7: '';
      readonly Numpad8: '';
      readonly Numpad9: '';
      readonly Multiply: '';
      readonly Add: '';
      readonly Separator: '';
      readonly Subtract: '';
      readonly Decimal: '';
      readonly Divide: '';
      readonly F1: '';
      readonly F2: '';
      readonly F3: '';
      readonly F4: '';
      readonly F5: '';
      readonly F6: '';
      readonly F7: '';
      readonly F8: '';
      readonly F9: '';
      readonly F10: '';
      readonly F11: '';
      readonly F12: '';
      readonly Command: '';
      readonly ZenkakuHankaku: '';
      };

        variable PARALLEL_CONTEXT_STORE_KEY

        const PARALLEL_CONTEXT_STORE_KEY: string;
        • Key used to expose the parallel context store on the browser instance.

        variable SevereServiceError

        const SevereServiceError: typeof SevereServiceErrorImport;

          Functions

          function attach

          attach: (attachOptions: AttachOptions) => Promise<WebdriverIO.Browser>;

            function getContextManager

            getContextManager: (browser: WebdriverIO.Browser) => ContextManager;

              function multiRemote

              multiRemote: (
              params: Capabilities.RequestedMultiRemoteCapabilities,
              { automationProtocol }?: { automationProtocol?: string }
              ) => Promise<WebdriverIO.MultiRemoteBrowser>;
              • WebdriverIO allows you to run multiple automated sessions in a single test. This is handy when you're testing features that require multiple users (for example, chat or WebRTC applications).

                Instead of creating a couple of remote instances where you need to execute common commands like newSession() or url() on each instance, you can simply create a multi-remote instance and control all browsers at the same time.

                NOTE: Multi-remote is not meant to execute all your tests in parallel. It is intended to help coordinate multiple browsers and/or mobile devices for special integration tests (e.g. chat applications).

                Parameter params

                capabilities to choose desired devices.

                Parameter automationProtocol

                All remote instances, the first result represents the capability defined first in the capability object, the second result the second capability and so on.

                See Also

                • External document and example usage.

              function remote

              remote: (
              params: Capabilities.WebdriverIOConfig,
              remoteModifier?: (
              client: WebDriverTypes.Client,
              options: Capabilities.WebdriverIOConfig
              ) => WebDriverTypes.Client
              ) => Promise<WebdriverIO.Browser>;
              • A method to create a new session with WebdriverIO.

                NOTE: If you hit "error TS2694: Namespace 'global.WebdriverIO' has no exported member 'Browser'" when using typescript, add "@wdio/globals/types" into tsconfig.json's "types" array will solve it: { "compilerOptions": { "types": ["@wdio/globals/types"] } }

                Parameter params

                Options to create the session with

                Parameter remoteModifier

                Modifier function to change the monad object browser object with sessionId

                See Also

                • Typescript setup

              function toBidiActions

              toBidiActions: <T extends { actions: object[] }>(
              sequence: T[]
              ) => remote.InputSourceActions[];
              • Converts classic action sources to BiDi input sources: element origins become { type: 'element', sharedId } references.

              Classes

              class KeyAction

              class KeyAction extends BaseAction {}

                constructor

                constructor(
                instance: WebdriverIO.Browser | WebdriverIO.BrowsingContext,
                params?: BaseActionParams
                );

                  method down

                  down: (value: string) => this;
                  • Generates a key down action.

                    Parameter value

                    key value

                  method up

                  up: (value: string) => this;
                  • Generates a key up action.

                    Parameter value

                    key value

                  class PointerAction

                  class PointerAction extends BaseAction {}

                    constructor

                    constructor(
                    instance: WebdriverIO.Browser | WebdriverIO.BrowsingContext,
                    params?: BaseActionParams
                    );

                      method cancel

                      cancel: () => this;
                      • An action that cancels this pointer's current input.

                      method down

                      down: {
                      (button?: Button): PointerAction;
                      (button?: ButtonNames): PointerAction;
                      (params?: PointerActionParams): PointerAction;
                      };
                      • Creates an action to press a single key

                        Parameter params

                        PointerActionParams

                      method move

                      move: {
                      (params: PointerActionMoveParams): PointerAction;
                      (x: number, y: number): PointerAction;
                      };
                      • Creates an action for moving the pointer x and y pixels from the specified origin. The origin may be defined as the pointers current position (e.g. "pointer"), the viewport (e.g. "viewport") or the center of a specific element.

                        Parameter params

                        PointerActionMoveParams

                      method up

                      up: {
                      (button?: Button): PointerAction;
                      (button?: ButtonNames): PointerAction;
                      (params?: PointerActionUpParams): PointerAction;
                      };
                      • Creates an action to release a single key.

                        Parameter params

                        PointerActionUpParams

                      class StrictSelectorError

                      class StrictSelectorError extends Error {}
                      • Error thrown when $ is used in strict mode (the default as of v10) and the given selector resolves to more than one element.

                        This lives in its own leaf module (no runtime imports beyond the Selector type) so that other leaf utilities - notably implicitWait.ts - can check instanceof StrictSelectorError without pulling in strictMode.ts's findStrictElement, which imports the whole utils/index.ts barrel and, transitively through the command barrels and middlewares.ts, closes a circular import back onto refetchElement.ts/implicitWait.ts themselves.

                        See Also

                        • https://github.com/webdriverio/webdriverio/issues/15666

                      constructor

                      constructor(selector: any, matches: number);

                        property matches

                        matches: number;
                        • amount of elements the selector resolved to

                        property selector

                        selector: any;
                        • selector that was used to query the elements

                        class WheelAction

                        class WheelAction extends BaseAction {}

                          constructor

                          constructor(
                          instance: WebdriverIO.Browser | WebdriverIO.BrowsingContext,
                          params?: BaseActionParams
                          );

                            method scroll

                            scroll: (params?: Partial<ScrollParams>) => this;
                            • Scrolls a page to given coordinates or origin.

                            Interfaces

                            interface Action

                            interface Action {}

                              property actions

                              actions: (NoneActionEntity | PointerActionEntity | KeyActionEntity)[];

                                property id

                                id: string;

                                  property parameters

                                  parameters?: {
                                  pointerType: 'mouse' | 'pen' | 'touch';
                                  };

                                    property type

                                    type?: 'pointer' | 'key';

                                      interface ActionParameter

                                      interface ActionParameter {}

                                        property actions

                                        actions: Action[];

                                          interface ActionParameters

                                          interface ActionParameters {}

                                            property pointerType

                                            pointerType?: KeyActionType;

                                              interface AttachOptions

                                              interface AttachOptions extends Omit<WebDriverAttachOptions, 'capabilities'> {}

                                                property capabilities

                                                capabilities?: WebDriverAttachOptions['capabilities'];

                                                  property options

                                                  options?: Options.WebdriverIO;

                                                    property requestedCapabilities

                                                    requestedCapabilities?: WebDriverAttachOptions['capabilities'];

                                                      interface BaseActionParams

                                                      interface BaseActionParams {}

                                                        property id

                                                        id?: string;

                                                          property parameters

                                                          parameters?: ActionParameters;

                                                            interface Browser

                                                            interface Browser
                                                            extends Omit<BrowserBase, 'on' | 'once'>,
                                                            BidiEventHandler,
                                                            BidiHandler,
                                                            ProtocolCommands,
                                                            BrowserCommandsType {}

                                                            interface BrowserBase

                                                            interface BrowserBase
                                                            extends InstanceBase,
                                                            CustomInstanceCommands<WebdriverIO.Browser> {}
                                                            • a browser base that has everything besides commands which are defined for sync and async separately

                                                            property capabilities

                                                            capabilities: WebdriverIO.Capabilities;
                                                            • capabilities of the browser instance

                                                            property isMultiRemote

                                                            isMultiRemote: false;

                                                              interface ChainablePromiseArray

                                                              interface ChainablePromiseArray extends AsyncIterators<WebdriverIO.Element> {}

                                                                property foundWith

                                                                foundWith: string;
                                                                • Command name with which this list was found, e.g. $$, react$$, custom$$, shadow$$. Available immediately, before the query resolves.

                                                                property length

                                                                length: Promise<number>;
                                                                • Amount of elements fetched. This is a promise until the query resolves, so compare it only after awaiting the list or the property itself.

                                                                property parent

                                                                parent:
                                                                | WebdriverIO.Element
                                                                | WebdriverIO.Browser
                                                                | WebdriverIO.MultiRemoteBrowser
                                                                | WebdriverIO.BrowsingContext;
                                                                • Parent of the list if fetched via $(parent).$$(child). Available immediately, before the query resolves.

                                                                property props

                                                                props: any[];
                                                                • Extra arguments of the query that fetched this list. Available immediately.

                                                                property selector

                                                                selector: Selector | undefined;
                                                                • Selector used to fetch this list. It is available immediately, before the query resolves. It can be - undefined if the list was created via $$([]), raw element references, or elements that do not share one selector - a string if findElements was used and a reference was found - or a function if the elements were found via e.g. $$(() => document.body)

                                                                method [Symbol.asyncIterator]

                                                                [Symbol.asyncIterator]: () => AsyncIterableIterator<WebdriverIO.Element>;

                                                                  method [Symbol.iterator]

                                                                  [Symbol.iterator]: () => IterableIterator<WebdriverIO.Element>;

                                                                    method at

                                                                    at: (index: number) => ChainablePromiseElement;
                                                                    • The element at an index, as a chainable element, like [n]. A negative index counts back from the end of the list. The index is converted as with Array.prototype.at, so at(1.5) is element 1.

                                                                    method catch

                                                                    catch: <TResult = never>(
                                                                    onrejected?: (reason: unknown) => TResult | PromiseLike<TResult>
                                                                    ) => Promise<WebdriverIO.ElementArray | TResult>;

                                                                      method entries

                                                                      entries: () => AsyncIterableIterator<[number, WebdriverIO.Element]>;
                                                                      • Returns an async iterator of key/value pairs for every index in the array.

                                                                      method finally

                                                                      finally: (
                                                                      onfinally?: (() => void) | undefined | null
                                                                      ) => Promise<WebdriverIO.ElementArray>;

                                                                        method getElements

                                                                        getElements: () => Promise<WebdriverIO.ElementArray>;
                                                                        • get the WebdriverIO.Element[] list

                                                                        method slice

                                                                        slice: (start?: number, end?: number) => ChainablePromiseArray;
                                                                        • A part of the list, as a list. An index past the end of that part does not run the query again, see $$.

                                                                        method then

                                                                        then: <TResult1 = WebdriverIO.ElementArray, TResult2 = never>(
                                                                        onfulfilled?: (
                                                                        value: WebdriverIO.ElementArray
                                                                        ) => TResult1 | PromiseLike<TResult1>,
                                                                        onrejected?: (reason: unknown) => TResult2 | PromiseLike<TResult2>
                                                                        ) => Promise<TResult1 | TResult2>;
                                                                        • Awaiting the list yields the resolved ElementArray. Until then, length is a promise and each index is a chainable element.

                                                                        index signature

                                                                        [n: number]: ChainablePromiseElement;
                                                                        • allow to access a specific index of the element set

                                                                        interface ChainablePromiseElement

                                                                        interface ChainablePromiseElement
                                                                        extends ChainablePromiseBaseElement,
                                                                        AsyncElementProto,
                                                                        Omit<
                                                                        WebdriverIO.Element,
                                                                        keyof ChainablePromiseBaseElement | keyof AsyncElementProto
                                                                        > {}

                                                                          interface CustomInstanceCommands

                                                                          interface CustomInstanceCommands<T> {}

                                                                            method addCommand

                                                                            addCommand: {
                                                                            (
                                                                            name: string,
                                                                            func: (this: WebdriverIO.BrowsingContext, ...args: any[]) => any,
                                                                            options: BrowsingContextCommandOptions
                                                                            ): void;
                                                                            <
                                                                            IsElement extends boolean = false,
                                                                            Instance extends CustomCommands.Instances = WebdriverIO.Browser
                                                                            >(
                                                                            name: string,
                                                                            func: IsElement extends true
                                                                            ? AddCommandFnScoped<Instance | T, IsElement>
                                                                            : AddCommandFn,
                                                                            options?: CustomCommands.CustomCommandOptions<IsElement>
                                                                            ): void;
                                                                            };
                                                                            • add command to every browsing context (tab, window, frame)

                                                                            • add command to browser, or to an element when options.attachToElement is true

                                                                            method addLocatorStrategy

                                                                            addLocatorStrategy: (
                                                                            name: string,
                                                                            func:
                                                                            | ((selector: string, root: HTMLElement) => CustomLocatorReturnValue)
                                                                            | ((selector: string) => CustomLocatorReturnValue)
                                                                            ) => void;
                                                                            • create custom selector

                                                                            method overwriteCommand

                                                                            overwriteCommand: {
                                                                            <Key extends keyof WebdriverIO.BrowsingContext>(
                                                                            name: Key,
                                                                            func: (
                                                                            this: WebdriverIO.BrowsingContext,
                                                                            originalCommand: BrowsingContextCommand<Key>,
                                                                            ...args: any[]
                                                                            ) => Promise<any>,
                                                                            options: BrowsingContextCommandOptions
                                                                            ): void;
                                                                            <
                                                                            ElementKey extends
                                                                            | '$'
                                                                            | '$$'
                                                                            | 'custom$'
                                                                            | 'custom$$'
                                                                            | 'react$'
                                                                            | 'react$$'
                                                                            | 'execute'
                                                                            | 'saveScreenshot'
                                                                            | 'waitUntil'
                                                                            | 'getHTML'
                                                                            | 'addValue'
                                                                            | 'clearValue'
                                                                            | 'click'
                                                                            | 'doubleClick'
                                                                            | 'dragAndDrop'
                                                                            | 'getAttribute'
                                                                            | 'getCSSProperty'
                                                                            | 'getComputedRole'
                                                                            | 'getComputedLabel'
                                                                            | 'getElement'
                                                                            | 'getLocation'
                                                                            | 'getProperty'
                                                                            | 'getSize'
                                                                            | 'getTagName'
                                                                            | 'getText'
                                                                            | 'getValue'
                                                                            | 'isClickable'
                                                                            | 'isDisplayed'
                                                                            | 'isEnabled'
                                                                            | 'isEqual'
                                                                            | 'isExisting'
                                                                            | 'isFocused'
                                                                            | 'isSelected'
                                                                            | 'isStable'
                                                                            | 'moveTo'
                                                                            | 'nextElement'
                                                                            | 'parentElement'
                                                                            | 'previousElement'
                                                                            | 'scrollIntoView'
                                                                            | 'selectByAttribute'
                                                                            | 'selectByIndex'
                                                                            | 'selectByVisibleText'
                                                                            | 'setFiles'
                                                                            | 'setValue'
                                                                            | 'shadow$$'
                                                                            | 'shadow$'
                                                                            | 'waitForClickable'
                                                                            | 'waitForDisplayed'
                                                                            | 'waitForEnabled'
                                                                            | 'waitForExist'
                                                                            | 'waitForStable'
                                                                            | 'longPress'
                                                                            | 'pinch'
                                                                            | 'tap'
                                                                            | 'zoom',
                                                                            BrowserKey extends
                                                                            | '$'
                                                                            | '$$'
                                                                            | 'custom$'
                                                                            | 'custom$$'
                                                                            | 'react$'
                                                                            | 'react$$'
                                                                            | 'execute'
                                                                            | 'action'
                                                                            | 'actions'
                                                                            | 'keys'
                                                                            | 'scroll'
                                                                            | 'saveScreenshot'
                                                                            | 'savePDF'
                                                                            | 'getCookies'
                                                                            | 'setCookies'
                                                                            | 'deleteCookies'
                                                                            | 'setViewport'
                                                                            | 'addInitScript'
                                                                            | 'mock'
                                                                            | 'mockClearAll'
                                                                            | 'mockRestoreAll'
                                                                            | 'emulate'
                                                                            | 'restore'
                                                                            | 'waitUntil'
                                                                            | 'pause'
                                                                            | 'back'
                                                                            | 'forward'
                                                                            | 'tap'
                                                                            | 'call'
                                                                            | 'debug'
                                                                            | 'downloadFile'
                                                                            | 'getPuppeteer'
                                                                            | 'getWindowSize'
                                                                            | 'installExtension'
                                                                            | 'SESSION_MOCKS'
                                                                            | 'newWindow'
                                                                            | 'browsingContexts'
                                                                            | 'reloadSession'
                                                                            | 'saveRecordingScreen'
                                                                            | 'setTimeout'
                                                                            | 'setWindowSize'
                                                                            | 'switchWindow'
                                                                            | 'switchFrame'
                                                                            | 'throttleCPU'
                                                                            | 'throttleNetwork'
                                                                            | 'uninstallExtension'
                                                                            | 'url'
                                                                            | 'swipe'
                                                                            | 'getContext'
                                                                            | 'getContexts'
                                                                            | 'switchContext'
                                                                            | 'relaunchActiveApp'
                                                                            | 'deepLink'
                                                                            | 'lock'
                                                                            | 'touchId'
                                                                            | 'toggleEnrollTouchId'
                                                                            | 'launchApp'
                                                                            | 'background'
                                                                            | 'getStrings'
                                                                            | 'setClipboard'
                                                                            | 'getClipboard'
                                                                            | 'toggleAirplaneMode'
                                                                            | 'toggleData'
                                                                            | 'toggleWiFi'
                                                                            | 'unlock'
                                                                            | 'isLocked'
                                                                            | 'shake'
                                                                            | 'closeApp'
                                                                            | 'getCurrentActivity'
                                                                            | 'getCurrentPackage'
                                                                            | 'getPerformanceData'
                                                                            | 'getPerformanceDataTypes'
                                                                            | 'getSystemBars'
                                                                            | 'getDisplayDensity'
                                                                            | 'pressKeyCode'
                                                                            | 'longPressKeyCode'
                                                                            | 'sendKeyEvent'
                                                                            | 'startActivity'
                                                                            | 'openNotifications'
                                                                            | 'toggleLocationServices'
                                                                            | 'toggleNetworkSpeed'
                                                                            | 'gsmCall'
                                                                            | 'gsmSignal'
                                                                            | 'gsmVoice'
                                                                            | 'sendSms'
                                                                            | 'fingerPrint'
                                                                            | 'powerCapacity'
                                                                            | 'powerAC'
                                                                            | 'acceptDialog'
                                                                            | 'dismissDialog',
                                                                            IsElement extends boolean = false
                                                                            >(
                                                                            name: IsElement extends true ? ElementKey : BrowserKey,
                                                                            func: IsElement extends true
                                                                            ? OverwriteCommandFnScoped<ElementKey, BrowserKey, IsElement>
                                                                            : OverwriteCommandFn<ElementKey, BrowserKey, IsElement>,
                                                                            options?: CustomCommands.CustomCommandOptions<IsElement>
                                                                            ): void;
                                                                            };
                                                                            • overwrite a command of every browsing context (tab, window, frame)

                                                                            • overwrite a browser command, or an element command when options.attachToElement is true

                                                                            interface CustomScrollIntoViewOptions

                                                                            interface CustomScrollIntoViewOptions
                                                                            extends ScrollIntoViewOptions,
                                                                            MobileScrollIntoViewOptions {}

                                                                              interface CustomThrottle

                                                                              interface CustomThrottle {}

                                                                                property downloadThroughput

                                                                                downloadThroughput: number;

                                                                                  property latency

                                                                                  latency: number;

                                                                                    property offline

                                                                                    offline: boolean;

                                                                                      property uploadThroughput

                                                                                      uploadThroughput: number;

                                                                                        interface ElementBase

                                                                                        interface ElementBase
                                                                                        extends InstanceBase,
                                                                                        ElementReference,
                                                                                        CustomInstanceCommands<WebdriverIO.Element> {}
                                                                                        • export a browser interface that can be used for typing plugins

                                                                                        property capabilities

                                                                                        capabilities: WebdriverIO.Capabilities;
                                                                                        • capabilities of the browser instance

                                                                                        property elementId

                                                                                        elementId: string;
                                                                                        • WebDriver element reference

                                                                                        property error

                                                                                        error?: Error;
                                                                                        • error response if element was not found

                                                                                        property index

                                                                                        index?: number;
                                                                                        • index of the element if fetched with $$

                                                                                        property isReactElement

                                                                                        isReactElement?: boolean;
                                                                                        • true if element is a React component

                                                                                        property isShadowElement

                                                                                        isShadowElement?: boolean;
                                                                                        • true if element was queried from a shadow root

                                                                                        property locator

                                                                                        locator?: remote.BrowsingContextLocator;
                                                                                        • locator of the element WebDriver Bidi

                                                                                        property parent

                                                                                        parent: WebdriverIO.Element | WebdriverIO.Browser | WebdriverIO.BrowsingContext;
                                                                                        • parent of the element if fetched via $(parent).$(child)

                                                                                        property selector

                                                                                        selector: Selector;
                                                                                        • selector used to fetch this element, can be - undefined if element was created via $({ 'element-6066-11e4-a52e-4f735466cecf': 'ELEMENT-1' }) - a string if findElement was used and a reference was found - or a functin if element was found via e.g. $(() => document.body)

                                                                                        property strict

                                                                                        strict?: boolean;
                                                                                        • whether the element was queried with strict selector semantics, used to keep the same behavior when the element is re-fetched

                                                                                        interface ElementQueryOptions

                                                                                        interface ElementQueryOptions {}
                                                                                        • options to modify how a single element is queried via $

                                                                                        property strict

                                                                                        strict?: boolean;
                                                                                        • If true the query throws a StrictSelectorError when the selector resolves to more than one element. Defaults to the strictSelectors config option which itself defaults to true.

                                                                                        interface ExtendedElementReference

                                                                                        interface ExtendedElementReference {}

                                                                                          property 'element-6066-11e4-a52e-4f735466cecf'

                                                                                          'element-6066-11e4-a52e-4f735466cecf': string;

                                                                                            property locator

                                                                                            locator: remote.BrowsingContextLocator;

                                                                                              interface InitScript

                                                                                              interface InitScript<Payload = undefined> {}

                                                                                                property on

                                                                                                on: (event: 'data', listener: (data: Payload) => void) => void;

                                                                                                  property remove

                                                                                                  remove: () => Promise<void>;

                                                                                                    interface InputOptions

                                                                                                    interface InputOptions {}
                                                                                                    • Additional options outside of the WebDriver spec, exclusively for WebdriverIO, only for runtime, and not sent to Appium

                                                                                                    property mask

                                                                                                    mask?: boolean;

                                                                                                      interface MockRequestOptions

                                                                                                      interface MockRequestOptions {}

                                                                                                        property requestWith

                                                                                                        requestWith?: RequestWithOptions;

                                                                                                          interface ParsedCSSValue

                                                                                                          interface ParsedCSSValue {}

                                                                                                            property parsed

                                                                                                            parsed: ParsedColor;

                                                                                                              property property

                                                                                                              property?: string;

                                                                                                                property value

                                                                                                                value?: string;

                                                                                                                  interface PDFPrintOptions

                                                                                                                  interface PDFPrintOptions {}
                                                                                                                  • Options for browser.savePDF. Lengths are centimeters.

                                                                                                                    Defaults match WebDriver Classic printPage and WebDriver BiDi browsingContext.print: portrait, scale 1, background false, shrink-to-fit true, page 21.59 × 27.94 cm, margins 1 cm. Omitted fields are left to the browser.

                                                                                                                  property background

                                                                                                                  background?: boolean;
                                                                                                                  • Print the page background. false

                                                                                                                  property bottom

                                                                                                                  bottom?: number;
                                                                                                                  • Bottom margin in centimeters. 1

                                                                                                                  property height

                                                                                                                  height?: number;
                                                                                                                  • Page height in centimeters. 27.94

                                                                                                                  property left

                                                                                                                  left?: number;
                                                                                                                  • Left margin in centimeters. 1

                                                                                                                  property orientation

                                                                                                                  orientation?: string;
                                                                                                                  • Page orientation. Accepted values are portrait and landscape. The property stays a string so an existing variable of that type can still be passed. Any other value is rejected when savePDF runs. 'portrait'

                                                                                                                  property pageRanges

                                                                                                                  pageRanges?: Array<string | number>;
                                                                                                                  • Pages to include. Each entry is a page number or a range such as '1-3'. []

                                                                                                                  property right

                                                                                                                  right?: number;
                                                                                                                  • Right margin in centimeters. 1

                                                                                                                  property scale

                                                                                                                  scale?: number;
                                                                                                                  • Page scale. The print protocols accept 0.1–2. 1

                                                                                                                  property shrinkToFit

                                                                                                                  shrinkToFit?: boolean;
                                                                                                                  • Shrink the content to fit the page. true

                                                                                                                  property top

                                                                                                                  top?: number;
                                                                                                                  • Top margin in centimeters. 1

                                                                                                                  property width

                                                                                                                  width?: number;
                                                                                                                  • Page width in centimeters. 21.59

                                                                                                                  interface RequestWithOptions

                                                                                                                  interface RequestWithOptions
                                                                                                                  extends BaseOverwriteOptions<local.NetworkBeforeRequestSentParameters> {}

                                                                                                                    property method

                                                                                                                    method?: Overwrite<Methods, local.NetworkBeforeRequestSentParameters>;

                                                                                                                      property url

                                                                                                                      url?: Overwrite<string, local.NetworkBeforeRequestSentParameters>;

                                                                                                                        interface RespondWithOptions

                                                                                                                        interface RespondWithOptions
                                                                                                                        extends BaseOverwriteOptions<local.NetworkResponseCompletedParameters> {}

                                                                                                                          property fetchResponse

                                                                                                                          fetchResponse?: boolean;

                                                                                                                            property statusCode

                                                                                                                            statusCode?: Overwrite<number, local.NetworkResponseCompletedParameters>;

                                                                                                                              interface Response

                                                                                                                              interface Response extends local.NetworkResponseCompletedParameters {}

                                                                                                                                property body

                                                                                                                                body?: string;

                                                                                                                                  property postData

                                                                                                                                  postData?: string;

                                                                                                                                    interface SaveScreenshotOptions

                                                                                                                                    interface SaveScreenshotOptions {}

                                                                                                                                      property clip

                                                                                                                                      clip?: {
                                                                                                                                      x: number;
                                                                                                                                      y: number;
                                                                                                                                      width: number;
                                                                                                                                      height: number;
                                                                                                                                      };
                                                                                                                                      • Clipping a rectangle of the screenshot.

                                                                                                                                      property format

                                                                                                                                      format?: 'png' | 'jpeg' | 'jpg';
                                                                                                                                      • The format of the screenshot. 'png'

                                                                                                                                      property fullPage

                                                                                                                                      fullPage?: boolean;
                                                                                                                                      • Whether to take a screenshot of the full page or just the current viewport. false

                                                                                                                                      property quality

                                                                                                                                      quality?: number;
                                                                                                                                      • The quality of the screenshot in case of JPEG format in range 0-100 percent. 100

                                                                                                                                      Enums

                                                                                                                                      enum MobileScrollDirection

                                                                                                                                      enum MobileScrollDirection {
                                                                                                                                      Down = 'down',
                                                                                                                                      Up = 'up',
                                                                                                                                      Left = 'left',
                                                                                                                                      Right = 'right',
                                                                                                                                      }

                                                                                                                                        member Down

                                                                                                                                        Down = 'down'

                                                                                                                                          member Left

                                                                                                                                          Left = 'left'

                                                                                                                                            member Right

                                                                                                                                            Right = 'right'

                                                                                                                                              member Up

                                                                                                                                              Up = 'up'

                                                                                                                                                Type Aliases

                                                                                                                                                type ActionType

                                                                                                                                                type ActionType = 'key' | 'pointer' | 'wheel';

                                                                                                                                                  type ActiveAppInfo

                                                                                                                                                  type ActiveAppInfo = {
                                                                                                                                                  pid: number;
                                                                                                                                                  bundleId: string;
                                                                                                                                                  name: string;
                                                                                                                                                  processArguments: {
                                                                                                                                                  args: string[];
                                                                                                                                                  env: Record<string, string>;
                                                                                                                                                  };
                                                                                                                                                  };

                                                                                                                                                    type AddCommandFn

                                                                                                                                                    type AddCommandFn = (...args: any[]) => any;

                                                                                                                                                      type AddCommandFunction

                                                                                                                                                      type AddCommandFunction<
                                                                                                                                                      IsElement extends boolean,
                                                                                                                                                      T = any,
                                                                                                                                                      Instance = WebdriverIO.Browser
                                                                                                                                                      > = IsElement extends true
                                                                                                                                                      ? AddCommandFnScoped<T | Instance, IsElement>
                                                                                                                                                      : AddCommandFn;

                                                                                                                                                        type AndroidDetailedContext

                                                                                                                                                        type AndroidDetailedContext = AppiumDetailedContextInterface & {
                                                                                                                                                        androidWebviewData?: {
                                                                                                                                                        attached: boolean;
                                                                                                                                                        empty: boolean;
                                                                                                                                                        height: number;
                                                                                                                                                        neverAttached: boolean;
                                                                                                                                                        screenX: number;
                                                                                                                                                        screenY: number;
                                                                                                                                                        visible: boolean;
                                                                                                                                                        width: number;
                                                                                                                                                        };
                                                                                                                                                        packageName?: string;
                                                                                                                                                        webviewPageId?: string;
                                                                                                                                                        };

                                                                                                                                                          type AppiumDetailedCrossPlatformContexts

                                                                                                                                                          type AppiumDetailedCrossPlatformContexts = (
                                                                                                                                                          | IosDetailedContext
                                                                                                                                                          | AndroidDetailedContext
                                                                                                                                                          )[];

                                                                                                                                                            type BrowserCommandsType

                                                                                                                                                            type BrowserCommandsType = Omit<$BrowserCommands, keyof ChainablePrototype> &
                                                                                                                                                            ChainablePrototype;

                                                                                                                                                              type Button

                                                                                                                                                              type Button = 0 | 1 | 2;

                                                                                                                                                                type ButtonNames

                                                                                                                                                                type ButtonNames = 'left' | 'middle' | 'right';

                                                                                                                                                                  type ClickOptions

                                                                                                                                                                  type ClickOptions = LongPressOptions & {
                                                                                                                                                                  button: Button | ButtonNames;
                                                                                                                                                                  skipRelease: boolean;
                                                                                                                                                                  };

                                                                                                                                                                    type CustomCommandOptions

                                                                                                                                                                    type CustomCommandOptions<IsElement extends boolean> =
                                                                                                                                                                    CustomCommands.CustomCommandOptions<IsElement>;

                                                                                                                                                                      type CustomLocatorReturnValue

                                                                                                                                                                      type CustomLocatorReturnValue =
                                                                                                                                                                      | HTMLElement
                                                                                                                                                                      | HTMLElement[]
                                                                                                                                                                      | NodeListOf<HTMLElement>;

                                                                                                                                                                        type CustomStrategyFunction

                                                                                                                                                                        type CustomStrategyFunction = (
                                                                                                                                                                        ...args: any
                                                                                                                                                                        ) => ElementReference | ElementReference[];

                                                                                                                                                                          type CustomStrategyReference

                                                                                                                                                                          type CustomStrategyReference = {
                                                                                                                                                                          strategy: CustomStrategyFunction;
                                                                                                                                                                          strategyName: string;
                                                                                                                                                                          strategyArguments: any[];
                                                                                                                                                                          };

                                                                                                                                                                            type DeviceName

                                                                                                                                                                            type DeviceName = keyof typeof deviceDescriptorsSource;

                                                                                                                                                                              type DragAndDropCoordinate

                                                                                                                                                                              type DragAndDropCoordinate = {
                                                                                                                                                                              x: number;
                                                                                                                                                                              y: number;
                                                                                                                                                                              };

                                                                                                                                                                                type DragAndDropOptions

                                                                                                                                                                                type DragAndDropOptions = {
                                                                                                                                                                                duration?: number;
                                                                                                                                                                                };

                                                                                                                                                                                  type ElementArray

                                                                                                                                                                                  type ElementArray = ElementArrayExport;

                                                                                                                                                                                    type ElementCommandsType

                                                                                                                                                                                    type ElementCommandsType = Omit<$ElementCommands, keyof ChainablePrototype> &
                                                                                                                                                                                    ChainablePrototype;

                                                                                                                                                                                      type ElementFunction

                                                                                                                                                                                      type ElementFunction =
                                                                                                                                                                                      | ((elem: HTMLElement) => HTMLElement | undefined)
                                                                                                                                                                                      | ((elem: HTMLElement) => (HTMLElement | undefined)[]);

                                                                                                                                                                                        type FrameQuery

                                                                                                                                                                                        type FrameQuery =
                                                                                                                                                                                        | {
                                                                                                                                                                                        selector: string;
                                                                                                                                                                                        url?: never;
                                                                                                                                                                                        id?: never;
                                                                                                                                                                                        }
                                                                                                                                                                                        | {
                                                                                                                                                                                        url: string | RegExp;
                                                                                                                                                                                        selector?: never;
                                                                                                                                                                                        id?: never;
                                                                                                                                                                                        }
                                                                                                                                                                                        | {
                                                                                                                                                                                        id: string;
                                                                                                                                                                                        selector?: never;
                                                                                                                                                                                        url?: never;
                                                                                                                                                                                        };
                                                                                                                                                                                        • How context.frame() finds a frame: by the selector of its frame element on the page, by its url (exact string or RegExp), or by its browsing context id.

                                                                                                                                                                                        type GetContextsOptions

                                                                                                                                                                                        type GetContextsOptions = {
                                                                                                                                                                                        androidWebviewConnectionRetryTime?: number;
                                                                                                                                                                                        androidWebviewConnectTimeout?: number;
                                                                                                                                                                                        filterByCurrentAndroidApp?: boolean;
                                                                                                                                                                                        isAndroidWebviewVisible?: boolean;
                                                                                                                                                                                        returnAndroidDescriptionData?: boolean;
                                                                                                                                                                                        returnDetailedContexts?: boolean;
                                                                                                                                                                                        waitForWebviewMs?: number;
                                                                                                                                                                                        };

                                                                                                                                                                                          type Instances

                                                                                                                                                                                          type Instances = CustomCommands.Instances;

                                                                                                                                                                                            type IosDetailedContext

                                                                                                                                                                                            type IosDetailedContext = AppiumDetailedContextInterface & IosContextBundleId;

                                                                                                                                                                                              type KeyActionType

                                                                                                                                                                                              type KeyActionType = 'mouse' | 'pen' | 'touch';

                                                                                                                                                                                                type LongPressOptions

                                                                                                                                                                                                type LongPressOptions = {
                                                                                                                                                                                                x: number;
                                                                                                                                                                                                y: number;
                                                                                                                                                                                                duration: number;
                                                                                                                                                                                                };

                                                                                                                                                                                                  type Matcher

                                                                                                                                                                                                  type Matcher = {
                                                                                                                                                                                                  name: string;
                                                                                                                                                                                                  args: Array<string | object>;
                                                                                                                                                                                                  class?: string;
                                                                                                                                                                                                  };

                                                                                                                                                                                                    type MobileScrollIntoViewOptions

                                                                                                                                                                                                    type MobileScrollIntoViewOptions = SwipeOptions & {
                                                                                                                                                                                                    maxScrolls?: number;
                                                                                                                                                                                                    };

                                                                                                                                                                                                      type MockFilterOptions

                                                                                                                                                                                                      type MockFilterOptions = {
                                                                                                                                                                                                      method?: string | ((method: string) => boolean);
                                                                                                                                                                                                      requestHeaders?:
                                                                                                                                                                                                      | Record<string, string>
                                                                                                                                                                                                      | ((headers: Record<string, string>) => boolean);
                                                                                                                                                                                                      responseHeaders?:
                                                                                                                                                                                                      | Record<string, string>
                                                                                                                                                                                                      | ((headers: Record<string, string>) => boolean);
                                                                                                                                                                                                      postData?: string | ((postData?: string) => boolean);
                                                                                                                                                                                                      statusCode?: number | ((statusCode: number) => boolean);
                                                                                                                                                                                                      };

                                                                                                                                                                                                        type MoveToOptions

                                                                                                                                                                                                        type MoveToOptions = {
                                                                                                                                                                                                        xOffset?: number;
                                                                                                                                                                                                        yOffset?: number;
                                                                                                                                                                                                        };

                                                                                                                                                                                                          type MultiRemoteBrowserCommandsType

                                                                                                                                                                                                          type MultiRemoteBrowserCommandsType = {
                                                                                                                                                                                                          [K in keyof Omit<BrowserCommandsType, MultiRemoteArrayCommandNames>]: (
                                                                                                                                                                                                          ...args: Parameters<BrowserCommandsType[K]>
                                                                                                                                                                                                          ) => Promise<ThenArg<ReturnType<BrowserCommandsType[K]>>[]>;
                                                                                                                                                                                                          } & MultiRemoteBrowserQueries & {
                                                                                                                                                                                                          mock(
                                                                                                                                                                                                          ...args: Parameters<BrowserCommandsType['mock']>
                                                                                                                                                                                                          ): Promise<WebdriverIO.MultiRemoteMock>;
                                                                                                                                                                                                          };

                                                                                                                                                                                                            type MultiRemoteElementArray

                                                                                                                                                                                                            type MultiRemoteElementArray = MultiRemoteElementArrayExport;

                                                                                                                                                                                                              type MultiRemoteElementCommandsType

                                                                                                                                                                                                              type MultiRemoteElementCommandsType = {
                                                                                                                                                                                                              [K in keyof Omit<
                                                                                                                                                                                                              ElementCommandsType,
                                                                                                                                                                                                              ElementScopeSingleElementCommandNames | ElementScopeMultiElementCommandNames
                                                                                                                                                                                                              >]: (
                                                                                                                                                                                                              ...args: Parameters<ElementCommandsType[K]>
                                                                                                                                                                                                              ) => Promise<ThenArg<ReturnType<ElementCommandsType[K]>>[]>;
                                                                                                                                                                                                              } & MultiRemoteElementQueries;

                                                                                                                                                                                                                type MultiRemoteProtocolCommandsType

                                                                                                                                                                                                                type MultiRemoteProtocolCommandsType = {
                                                                                                                                                                                                                [K in keyof ProtocolCommands]: (
                                                                                                                                                                                                                ...args: Parameters<ProtocolCommands[K]>
                                                                                                                                                                                                                ) => Promise<ThenArg<ReturnType<ProtocolCommands[K]>>[]>;
                                                                                                                                                                                                                };

                                                                                                                                                                                                                  type NewWindowOptions

                                                                                                                                                                                                                  type NewWindowOptions = {
                                                                                                                                                                                                                  type?: 'tab' | 'window';
                                                                                                                                                                                                                  /**
                                                                                                                                                                                                                  * Top-level browsing context the new tab or window is opened from.
                                                                                                                                                                                                                  * A frame is rejected. BiDi only. In parallel mode, a tab or window is
                                                                                                                                                                                                                  * opened from the window of its test when this is not set.
                                                                                                                                                                                                                  */
                                                                                                                                                                                                                  referenceContext?: string | WebdriverIO.BrowsingContext;
                                                                                                                                                                                                                  };

                                                                                                                                                                                                                    type Origin

                                                                                                                                                                                                                    type Origin = 'pointer' | 'viewport';

                                                                                                                                                                                                                      type PinchAndZoomOptions

                                                                                                                                                                                                                      type PinchAndZoomOptions = {
                                                                                                                                                                                                                      duration: number;
                                                                                                                                                                                                                      scale: number;
                                                                                                                                                                                                                      };

                                                                                                                                                                                                                        type ReactSelectorOptions

                                                                                                                                                                                                                        type ReactSelectorOptions = {
                                                                                                                                                                                                                        props?: Record<string, unknown>;
                                                                                                                                                                                                                        state?: Record<string, unknown>;
                                                                                                                                                                                                                        };

                                                                                                                                                                                                                          type RestoreMap

                                                                                                                                                                                                                          type RestoreMap = Map<SupportedScopes, (() => Promise<any>)[]>;

                                                                                                                                                                                                                            type Selector

                                                                                                                                                                                                                            type Selector =
                                                                                                                                                                                                                            | string
                                                                                                                                                                                                                            | ElementReference
                                                                                                                                                                                                                            | ElementFunction
                                                                                                                                                                                                                            | CustomStrategyReference
                                                                                                                                                                                                                            | HTMLElement;

                                                                                                                                                                                                                              type SupportedScopes

                                                                                                                                                                                                                              type SupportedScopes =
                                                                                                                                                                                                                              | 'geolocation'
                                                                                                                                                                                                                              | 'userAgent'
                                                                                                                                                                                                                              | 'colorScheme'
                                                                                                                                                                                                                              | 'media'
                                                                                                                                                                                                                              | 'onLine'
                                                                                                                                                                                                                              | 'locale'
                                                                                                                                                                                                                              | 'timezone'
                                                                                                                                                                                                                              | 'touch'
                                                                                                                                                                                                                              | 'orientation'
                                                                                                                                                                                                                              | 'screen'
                                                                                                                                                                                                                              | 'viewportMeta'
                                                                                                                                                                                                                              | 'textLayout'
                                                                                                                                                                                                                              | 'scripting'
                                                                                                                                                                                                                              | 'scrollbar'
                                                                                                                                                                                                                              | 'forcedColors'
                                                                                                                                                                                                                              | 'clock'
                                                                                                                                                                                                                              | 'device';

                                                                                                                                                                                                                                type SwipeOptions

                                                                                                                                                                                                                                type SwipeOptions = {
                                                                                                                                                                                                                                direction?: `${MobileScrollDirection}`;
                                                                                                                                                                                                                                duration?: number;
                                                                                                                                                                                                                                from?: XY;
                                                                                                                                                                                                                                percent?: number;
                                                                                                                                                                                                                                scrollableElement?: WebdriverIO.Element | ChainablePromiseElement;
                                                                                                                                                                                                                                to?: XY;
                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                  type SwitchContextOptions

                                                                                                                                                                                                                                  type SwitchContextOptions = {
                                                                                                                                                                                                                                  appIdentifier?: string;
                                                                                                                                                                                                                                  title?: string | RegExp;
                                                                                                                                                                                                                                  url?: string | RegExp;
                                                                                                                                                                                                                                  androidWebviewConnectionRetryTime?: number;
                                                                                                                                                                                                                                  androidWebviewConnectTimeout?: number;
                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                    type TapOptions

                                                                                                                                                                                                                                    type TapOptions = MobileScrollIntoViewOptions & {
                                                                                                                                                                                                                                    x?: number;
                                                                                                                                                                                                                                    y?: number;
                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                      type ThrottleOptions

                                                                                                                                                                                                                                      type ThrottleOptions = ThrottlePreset | CustomThrottle;

                                                                                                                                                                                                                                        type ThrottlePreset

                                                                                                                                                                                                                                        type ThrottlePreset =
                                                                                                                                                                                                                                        | 'offline'
                                                                                                                                                                                                                                        | 'GPRS'
                                                                                                                                                                                                                                        | 'Regular2G'
                                                                                                                                                                                                                                        | 'Good2G'
                                                                                                                                                                                                                                        | 'Regular3G'
                                                                                                                                                                                                                                        | 'Good3G'
                                                                                                                                                                                                                                        | 'Regular4G'
                                                                                                                                                                                                                                        | 'DSL'
                                                                                                                                                                                                                                        | 'WiFi'
                                                                                                                                                                                                                                        | 'online';

                                                                                                                                                                                                                                          type TransformElement

                                                                                                                                                                                                                                          type TransformElement<T> = T extends WebdriverIO.Element
                                                                                                                                                                                                                                          ? HTMLElement
                                                                                                                                                                                                                                          : T extends ChainablePromiseElement
                                                                                                                                                                                                                                          ? HTMLElement
                                                                                                                                                                                                                                          : T extends WebdriverIO.Element[]
                                                                                                                                                                                                                                          ? HTMLElement[]
                                                                                                                                                                                                                                          : T extends ChainablePromiseArray
                                                                                                                                                                                                                                          ? HTMLElement[]
                                                                                                                                                                                                                                          : T extends [infer First, ...infer Rest]
                                                                                                                                                                                                                                          ? [TransformElement<First>, ...TransformElement<Rest>]
                                                                                                                                                                                                                                          : T extends Array<infer U>
                                                                                                                                                                                                                                          ? Array<TransformElement<U>>
                                                                                                                                                                                                                                          : T;

                                                                                                                                                                                                                                            type TransformReturn

                                                                                                                                                                                                                                            type TransformReturn<T> = T extends HTMLElement
                                                                                                                                                                                                                                            ? WebdriverIO.Element
                                                                                                                                                                                                                                            : T extends HTMLElement[]
                                                                                                                                                                                                                                            ? WebdriverIO.Element[]
                                                                                                                                                                                                                                            : T extends [infer First, ...infer Rest]
                                                                                                                                                                                                                                            ? [TransformReturn<First>, ...TransformReturn<Rest>]
                                                                                                                                                                                                                                            : T extends Array<infer U>
                                                                                                                                                                                                                                            ? Array<TransformReturn<U>>
                                                                                                                                                                                                                                            : T;

                                                                                                                                                                                                                                              type WaitForOptions

                                                                                                                                                                                                                                              type WaitForOptions = {
                                                                                                                                                                                                                                              timeout?: number;
                                                                                                                                                                                                                                              interval?: number;
                                                                                                                                                                                                                                              timeoutMsg?: string;
                                                                                                                                                                                                                                              reverse?: boolean;
                                                                                                                                                                                                                                              withinViewport?: boolean;
                                                                                                                                                                                                                                              };

                                                                                                                                                                                                                                                type WaitUntilOptions

                                                                                                                                                                                                                                                type WaitUntilOptions = {
                                                                                                                                                                                                                                                timeout?: number;
                                                                                                                                                                                                                                                timeoutMsg?: string | (() => string);
                                                                                                                                                                                                                                                interval?: number;
                                                                                                                                                                                                                                                };

                                                                                                                                                                                                                                                  type WebdriverIOEventMap

                                                                                                                                                                                                                                                  type WebdriverIOEventMap = EventMap & {
                                                                                                                                                                                                                                                  dialog: WebdriverIO.Dialog;
                                                                                                                                                                                                                                                  };

                                                                                                                                                                                                                                                    type XY

                                                                                                                                                                                                                                                    type XY = {
                                                                                                                                                                                                                                                    x: number;
                                                                                                                                                                                                                                                    y: number;
                                                                                                                                                                                                                                                    };

                                                                                                                                                                                                                                                      Package Files (11)

                                                                                                                                                                                                                                                      Dependencies (23)

                                                                                                                                                                                                                                                      Dev Dependencies (15)

                                                                                                                                                                                                                                                      Peer Dependencies (1)

                                                                                                                                                                                                                                                      Badge

                                                                                                                                                                                                                                                      To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                                                                                                                                                                                      You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/webdriverio.

                                                                                                                                                                                                                                                      • Markdown
                                                                                                                                                                                                                                                        [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/webdriverio)
                                                                                                                                                                                                                                                      • HTML
                                                                                                                                                                                                                                                        <a href="https://www.jsdocs.io/package/webdriverio"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>