mcpField
W
webdriverio-skill

webdriverio-skill

github.com/lambdatest测试与质量384257 次安装2 周前更新
代码仓库

关于 webdriverio-skill

面向测试编写者的 WebdriverIO 自动化技能,涵盖运行器选择、选择器、页面对象、等待策略,以及本地或 LambdaTest 云端执行。

主要功能

  1. 01Mocha、Jasmine 和 Cucumber 指导
  2. 02选择器与页面对象模式
  3. 03等待策略与测试示例
  4. 04LambdaTest 云端配置
  5. 05运行、套件和截图命令

适用场景

  1. 01自动化浏览器登录测试
  2. 02使用页面对象组织测试
  3. 03为测试项目选择运行器
  4. 04通过 LambdaTest 运行测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lambdatest/agent-skills --skill webdriverio-skill

安装后在 Claude Code 中输入/webdriverio-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
advanced-patterns.md
cloud-integration.md
playbook.md

详细介绍

WebdriverIO 自动化技能

第 1 步 — 执行目标

默认在本地运行。如果提到“cloud”“TestMu”或“LambdaTest”,则通过 WDIO LambdaTest 服务在云端运行。

第 2 步 — 框架

信号测试运行器
默认Mocha
“Jasmine”Jasmine
“Cucumber”“BDD”Cucumber

核心模式

选择器
// ✅ 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');
基本测试(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'));
    });
});
页面对象
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 云配置
// 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 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' }
);

快速参考

任务命令
初始化npm init wdio@latest
运行全部测试npx wdio run wdio.conf.js
运行指定测试npx wdio run wdio.conf.js --spec ./test/login.js
运行测试套件npx wdio run wdio.conf.js --suite smoke
并行运行在配置中设置 maxInstances: 5
截图await browser.saveScreenshot('./screenshot.png')

参考文件

文件阅读时机
reference/cloud-integration.mdLambdaTest 服务、并行运行、功能配置
reference/advanced-patterns.md自定义命令、报告器、服务

深入了解模式 → reference/playbook.md

§章节内容
1生产环境配置多环境、多浏览器配置
2页面对象模型BasePage、LoginPage、DashboardPage
3自定义命令浏览器和元素命令、TypeScript
4网络模拟DevTools 模拟、中止、错误模拟
5文件操作上传、下载、拖放
6多标签页、iFrame 和 Shadow DOM窗口句柄、嵌套 Shadow DOM
7视觉回归测试图像比较服务
8API 测试基于 Fetch、API 与 UI 组合测试
9移动端测试Appium 服务集成
10LambdaTest 集成云端网格配置
11CI/CD 集成GitHub Actions、Docker Compose
12调试快速参考11 个常见问题
13最佳实践清单14 项

评论

支持 Markdown