manus-skills/.kortix/opencode/skills/coding/appium-skill/reference/javascript-patterns.md
zhukang 1c7abd81d1 All 310 Manus skill-hub community skills as a Kortix marketplace registry
- 310 registry:skill items, 1528 files, 7 categories (hub tags)
- registry.json generated by @kortix/registry buildRegistry
- nested SKILL.md in sn-da-* renamed SUBSKILL.md (no phantom skills)
- provenance + licenses: SOURCES.md
2026-09-15 13:37:20 +08:00

1.4 KiB

Appium — JavaScript/WebdriverIO Patterns

Setup

npm init wdio@latest  # Select Appium service
npm install @wdio/appium-service --save-dev

Config (wdio.conf.js)

exports.config = {
    runner: 'local',
    port: 4723,
    path: '/',
    services: ['appium'],
    capabilities: [{
        platformName: 'Android',
        'appium:deviceName': 'emulator-5554',
        'appium:app': '/path/to/app.apk',
        'appium:automationName': 'UiAutomator2',
    }],
    framework: 'mocha',
    mochaOpts: { timeout: 60000 },
};

Test

describe('Login', () => {
    it('should login successfully', async () => {
        const email = await $('~emailInput');  // ~ = accessibilityId
        await email.setValue('user@test.com');
        await $('~passwordInput').setValue('password123');
        await $('~loginButton').click();
        await expect($('~dashboard')).toBeDisplayed();
    });
});

Cloud Config

capabilities: [{
    platformName: 'Android',
    'appium:deviceName': 'Pixel 7',
    'appium:platformVersion': '13',
    'appium:app': 'lt://APP1234567890',
    'appium:automationName': 'UiAutomator2',
    'LT:Options': {
        w3c: true, build: 'WDIO Appium Build',
        isRealMobile: true, video: true,
    }
}],
hostname: 'mobile-hub.lambdatest.com',
port: 80,
user: process.env.LT_USERNAME,
key: process.env.LT_ACCESS_KEY,