webdriverio-skill

v2026.09.24

Generates WebdriverIO (WDIO) automation tests in JavaScript or TypeScript. Supports local and TestMu AI cloud. Use when user mentions "WebdriverIO", "WDIO", "wdio.conf", "browser.url", "$", "$$". Triggers on: "WebdriverIO", "WDIO", "wdio", "browser.$".

GitHub
Install command
npx skhub add sickn33/webdriverio-skill
Markdown
SKILL.md

WebdriverIO Automation Skill

When to Use

Use this skill when you need generates WebdriverIO (WDIO) automation tests in JavaScript or TypeScript. Supports local and TestMu AI cloud. Use when user mentions "WebdriverIO", "WDIO", "wdio.conf", "browser.url", "$", "$$". Triggers on: "WebdriverIO", "WDIO", "wdio", "browser.$".

Step 1 — Execution Target

Default local. If mentions "cloud", "TestMu", "LambdaTest" → cloud via WDIO LambdaTest service.

Step 2 — Framework

SignalRunner
DefaultMocha
"Jasmine"Jasmine
"Cucumber", "BDD"Cucumber

Core Patterns

Selectors

// ✅ Preferred
await $('[data-testid="submit"]').click();
await $('aria/Submit').click();
await $('button=Submit').click(); // text-based

// Chaining
await $('form').$('input[name="email"]').setValue('test@test.com');

// Multiple elements
const items = await $$('.list-item');

Basic Test (Mocha)

describe('Login', () => {
    it('should login successfully', async () => {
        await browser.url('/login');
        await $('[data-testid="email"]').setValue('user@test.com');
        await $('[data-testid="password"]').setValue('password123');
        await $('[data-testid="submit"]').click();
        await expect(browser).toHaveUrl(expect.stringContaining('/dashboard'));
    });
});

Page Object

class LoginPage {
    get inputEmail() { return $('[data-testid="email"]'); }
    get inputPassword() { return $('[data-testid="password"]'); }
    get btnSubmit() { return $('[data-testid="submit"]'); }

    async login(email, password) {
        await this.inputEmail.setValue(email);
        await this.inputPassword.setValue(password);
        await this.btnSubmit.click();
    }
}
module.exports = new LoginPage();

TestMu AI Cloud Config

// wdio.conf.js
exports.config = {
    user: process.env.LT_USERNAME,
    key: process.env.LT_ACCESS_KEY,
    hostname: 'hub.lambdatest.com',
    port: 80,
    path: '/wd/hub',
    services: ['lambdatest'],
    capabilities: [{
        browserName: 'Chrome',
        browserVersion: 'latest',
        'LT:Options': {
            platform: 'Windows 11',
            build: 'WDIO Build',
            name: 'WDIO Test',
            video: true,
            network: true,
        }
    }],
};

Wait Strategies

// Wait for element
await $('[data-testid="result"]').waitForDisplayed({ timeout: 10000 });

// Wait for condition
await browser.waitUntil(
    async () => (await $('[data-testid="count"]').getText()) === '5',
    { timeout: 10000, timeoutMsg: 'Count did not reach 5' }
);

Quick Reference

TaskCommand
Setupnpm init wdio@latest
Run allnpx wdio run wdio.conf.js
Run specificnpx wdio run wdio.conf.js --spec ./test/login.js
Run suitenpx wdio run wdio.conf.js --suite smoke
ParallelSet maxInstances: 5 in config
Screenshotawait browser.saveScreenshot('./screenshot.png')

Reference Files

FileWhen to Read
reference/cloud-integration.mdLambdaTest service, parallel, capabilities
reference/advanced-patterns.mdCustom commands, reporters, services

Deep Patterns → reference/playbook.md

§SectionLines
1Production ConfigurationMulti-env, multi-browser configs
2Page Object ModelBasePage, LoginPage, DashboardPage
3Custom CommandsBrowser + element commands, TypeScript
4Network MockingDevTools mock, abort, error simulation
5File OperationsUpload, download, drag & drop
6Multi-Tab, iFrame & Shadow DOMWindow handles, nested shadow
7Visual RegressionImage comparison service
8API TestingFetch-based, API+UI combined
9Mobile TestingAppium service integration
10LambdaTest IntegrationCloud grid config
11CI/CD IntegrationGitHub Actions, Docker Compose
12Debugging Quick-Reference11 common problems
13Best Practices Checklist14 items

Limitations

  • Use this skill only when the task clearly matches its upstream source and local project context.
  • Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
  • Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/webdriverio-skill

Default branch

main

Latest commit

7b534bc

Tree SHA

8d3d722