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. 04LambdaTest を使ったテスト実行

インストール

コマンドをコピーしてターミナルで実行します。

$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 service を使用したクラウドになります。

ステップ 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 service、並列実行、capabilities
reference/advanced-patterns.mdカスタムコマンド、レポーター、サービス

詳細なパターン → reference/playbook.md

§セクション内容
1本番環境の設定マルチ環境、マルチブラウザー設定
2ページオブジェクトモデルBasePage、LoginPage、DashboardPage
3カスタムコマンドブラウザーおよび要素コマンド、TypeScript
4ネットワークモックDevTools のモック、リクエストの中断、エラーのシミュレーション
5ファイル操作アップロード、ダウンロード、ドラッグ&ドロップ
6マルチタブ、iFrame、Shadow DOMウィンドウハンドル、ネストされたシャドウ
7ビジュアルリグレッション画像比較サービス
8API テストFetch ベース、API と UI の組み合わせ
9モバイルテストAppium service の統合
10LambdaTest の統合クラウドグリッド設定
11CI/CD の統合GitHub Actions、Docker Compose
12デバッグクイックリファレンスよくある 11 の問題
13ベストプラクティスチェックリスト14 項目

コメント