WebdriverIO Desktop & Mobile Testing
WebdriverIO services for automated testing of native desktop and mobile applications
Features | Development | Contribute | Changelog
Stable releases — published on the
latestdist-tag.
| Service | Version | Platforms | Downloads |
|---|---|---|---|
| Windows / macOS / Linux | |||
| Windows / macOS / Linux | |||
| Windows / macOS / Linux |
Feature-complete services published under the
nextdist-tag (1.0.0-next.x).
| Service | Version | Platforms | Downloads |
|---|---|---|---|
| Android / iOS | |||
| Android / iOS |
Early (
0.x) support — feature surface is limited by upstream gaps. Not yet at parity with the services above.Electrobun: Linux upstream-blocked; macOS deeplink & multiremote upstream-blocked. See README
| Service | Version | Platforms | Downloads |
|---|---|---|---|
| macOS / Windows |
- Mobile - Shared Appium base for any native mobile app (plain native, NativeScript, MAUI)
- Capacitor - Ionic's cross-platform mobile framework (extends
@wdio/mobile-service) - Neutralino - Lightweight desktop applications
See ROADMAP.md for detailed sequencing, os support, and timelines.
- 🎯 Framework-specific automation - Native integration with desktop and mobile frameworks
- ⚙️ Automatic driver setup - Framework drivers spawned, configured, and torn down automatically
- 🎭 API mocking & isolation - Built-in mocking for deterministic tests
- ⚡ Backend code execution - Evaluate expressions and call functions in the app's native runtime
- 📱 Native mobile automation - Appium-driven UI interaction for Android + iOS
- 🖥️ Browser-only mode - Validate UI in Chrome against a dev server, no native binary
- 🔧 Consistent cross-platform API - Familiar WDIO patterns across all frameworks and platforms
desktop-mobile/
├── packages/ # Service packages
│ ├── electron-service/ # Electron service implementation
│ ├── tauri-service/ # Tauri service implementation
│ ├── dioxus-service/ # Dioxus service implementation
│ ├── electrobun-service/ # Electrobun service implementation
│ ├── native-cdp-bridge/ # Shared CDP bridge (single + multi-target)
│ ├── native-utils/ # Cross-platform utilities
│ ├── native-types/ # TypeScript type definitions
│ ├── native-spy/ # Spy utilities for mocking
│ ├── bundler/ # Build tool for packaging
│ ├── tauri-plugin/ # Tauri plugin for backend access
│ ├── dioxus-bridge/ # Dioxus bridge crate (Rust)
│ ├── dioxus-embedded-driver/ # Dioxus embedded WebDriver server (Rust)
│ └── dioxus-driver/ # Dioxus external WebDriver proxy (Rust, Windows)
├── fixtures/ # Test fixtures and example apps
│ ├── e2e-apps/ # E2E test applications
│ ├── package-tests/ # Package integration tests
│ └── config-formats/ # Configuration format test fixtures
├── e2e/ # End-to-end test suites
│ ├── test/ # Test specifications
│ │ ├── electron/ # Electron E2E tests
│ │ ├── tauri/ # Tauri E2E tests
│ │ └── dioxus/ # Dioxus E2E tests
│ └── scripts/ # Test execution scripts
├── docs/ # Documentation
└── scripts/ # Build and utility scripts
- Node.js 24 LTS
- pnpm 11.20.0
pnpm install # Install dependencies
pnpm build # Build all packages
pnpm test # Run testsSee docs/setup.md for detailed setup instructions and CONTRIBUTING.md for the full command reference.
We welcome contributions! Please see CONTRIBUTING.md for detailed guidelines.
Monorepo built with Turborepo, pnpm workspaces, and TypeScript. Each service integrates with WebdriverIO's test runner and provides framework-specific automation capabilities.
See docs/architecture.md for detailed architecture documentation and docs/package-structure.md for package conventions.
| Document | Description |
|---|---|
| AGENTS.md | AI assistant context and coding standards |
| CONTRIBUTING.md | Contribution guidelines |
| ROADMAP.md | Framework support roadmap |
| MAINTENANCE.md | Version support and maintenance policy |
| SECURITY.md | Security policy and vulnerability reporting |
| docs/setup.md | Detailed setup instructions |
| docs/architecture.md | Service architecture overview |
| docs/e2e-testing.md | E2E testing guide |
| Electron browser mode, Tauri, Dioxus | Browser-only test mode guides |
| docs/visual-testing.md | Visual regression testing with @wdio/visual-service |
| docs/package-structure.md | Package conventions |
MIT License - see LICENSE for details.
Note: This repository does not maintain LTS or backport branches. Only the latest version on
mainreceives updates. See MAINTENANCE.md for details.
- WebdriverIO - Main WebdriverIO project
- WebdriverIO Docs - Official documentation
- WebdriverIO Community - Community resources
- Discord - Join the WebdriverIO Discord for support
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - Questions and ideas
- wdio-electron-service - Legacy Electron service repo
- tauri-driver - Official Tauri WebDriver server