{
    "app": {
        "name": "webdriverio-skill",
        "description": "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.$\".",
        "mode": "advanced-chat",
        "model_config": {
            "provider": "deepseek",
            "model": "deepseek-chat",
            "parameters": {
                "temperature": 0.7,
                "max_tokens": 4096
            }
        }
    },
    "instructions": "name webdriverio-skill description 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.$\". languages [\"JavaScript\",\"TypeScript\"] category e2e-testing license MIT metadata {\"author\":\"TestMu AI\",\"version\":\"1.0\"} 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 ( '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 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",
    "variables": [],
    "opening_statement": "你好，我是 webdriverio-skill，Generates WebdriverIO (WDIO) automation tests in J...",
    "suggested_questions": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=lambdatest-agent-skills-webdriverio-skill-skill-md"
}