lambdatest/agent-skills

webdriverio-skill

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.$".

First seen Mar 5, 2026

Installation

$ npx skills add lambdatest/agent-skills --skill webdriverio-skill

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from lambdatest/agent-skills · top by installs.

npx skills add lambdatest/agent-skills

Browse all from lambdatest/agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Also listed on

Alternate registries and mirrors of this skill.

Repository health

Stars 366
License LICENSE
Default branch main
Open issues 3
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
LicenseMIT
More metadata
author
TestMu AI
version
1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,270 B
  • docs SUMMARY.md 277 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 220 installs

SKILL.md

WebdriverIO Automation Skill

Step 1 — Execution Target

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

Step 2 — Framework

Signal Runner
Default Mocha
"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('[email protected]');

// 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('[email protected]');
        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

Task Command
Setup npm init wdio@latest
Run all npx wdio run wdio.conf.js
Run specific npx wdio run wdio.conf.js --spec ./test/login.js
Run suite npx wdio run wdio.conf.js --suite smoke
Parallel Set maxInstances: 5 in config
Screenshot await browser.saveScreenshot('./screenshot.png')

Reference Files

File When to Read
reference/cloud-integration.md LambdaTest service, parallel, capabilities
reference/advanced-patterns.md Custom commands, reporters, services

Deep Patterns → reference/playbook.md

§ Section Lines
1 Production Configuration Multi-env, multi-browser configs
2 Page Object Model BasePage, LoginPage, DashboardPage
3 Custom Commands Browser + element commands, TypeScript
4 Network Mocking DevTools mock, abort, error simulation
5 File Operations Upload, download, drag & drop
6 Multi-Tab, iFrame & Shadow DOM Window handles, nested shadow
7 Visual Regression Image comparison service
8 API Testing Fetch-based, API+UI combined
9 Mobile Testing Appium service integration
10 LambdaTest Integration Cloud grid config
11 CI/CD Integration GitHub Actions, Docker Compose
12 Debugging Quick-Reference 11 common problems
13 Best Practices Checklist 14 items