Dioxus Service
@wdio/dioxus-service is a 3rd party package, for more information please see GitHub | npm
WebdriverIO service for testing Dioxus desktop applications on Windows, Linux, and macOS.
Enables cross-platform E2E testing of Dioxus apps via the extensive WebdriverIO ecosystem.
Features
- 🚗 Embedded WebDriver server — no external driver required on any platform
- 🔧 Automatic Edge WebDriver management on Windows (
'external'provider) - 📦 Automatic Dioxus binary path detection
- 🌐 Cross-platform support (Windows, Linux, macOS)
- 🔗 Full Dioxus API access via
browser.dioxus.execute() - 🧩 Mocking support for Dioxus
invokecommands - 📊 Backend and frontend log capture
- 🖥️ Multiremote testing support
- 🏃 Per-worker driver spawning for parallel testing
- 🌍 Browser mode — test the Dioxus frontend in plain Chrome against a dev server, no binary or driver required
Installation
Install the service via npm:
npm install --save-dev @wdio/dioxus-service
Or with pnpm:
pnpm add -D @wdio/dioxus-service
Quick Start
Get started in minutes with the Quick Start Guide.
Minimal Configuration
Add to your wdio.conf.ts:
export const config = {
services: ['@wdio/dioxus-service'],
capabilities: [
{
browserName: 'dioxus',
'dioxus:options': {
application: './target/debug/my-app'
}
}
]
};
See Configuration Reference for all options.
Documentation
Getting Started
- Quick Start Guide - Set up in minutes
- Bridge Setup - Install wdio-dioxus-bridge
Reference
- Configuration - All service options
- API Reference - Complete API documentation
- Platform Support - Windows, Linux, macOS
Guides
- Browser Mode - Test the renderer in Chrome without a Dioxus binary
- Usage Examples - Common testing patterns
- Log Forwarding - Capture app logs
- Edge WebDriver (Windows) - Windows
'external'provider setup - Deeplink Testing - Test protocol handlers
- Coexistence - Using alongside Tauri and Electron services
- Visual Testing - Visual regression with
@wdio/visual-service - Video Recording - Record video of test runs with
wdio-video-reporter
Help & Support
- Troubleshooting - Common issues and solutions
- Development - Contributing guide
Platform Support
| Platform | Supported | Driver Providers | Notes |
|---|---|---|---|
| Windows | ✅ Yes | 'embedded', 'external' | 'embedded' recommended; 'external' requires wdio-dioxus-driver + msedgedriver |
| Linux | ✅ Yes | 'embedded' only | 'external' blocked in v1 (upstream Dioxus PR pending) |
| macOS | ✅ Yes | 'embedded' only | 'external' not supported |
See Platform Support for detailed information.
Choosing a driver provider:
'embedded'(recommended) — Native support on all three platforms, no external driver needed'external'— Windows only in v1; useswdio-dioxus-driver+ msedgedriver
Example Projects
Check out the E2E test fixtures in the desktop-mobile repository for complete working examples.
Support
Having trouble? Here are some resources:
- Troubleshooting Guide - Solutions for common issues
- Platform Support - Platform-specific information
- GitHub Issues - Bug reports and feature requests
- WebdriverIO Forum - General community help and discussions
Contributing
We welcome contributions! Please see our Development Guide for:
- Setting up your development environment
- Running tests
- Code style guidelines
- Pull request process
Quick start for contributors:
# Clone and install
git clone https://github.com/webdriverio/desktop-mobile.git
cd desktop-mobile
pnpm install
# Make your changes
# ...
# Run tests
pnpm test
# Submit a pull request
License
MIT License. See LICENSE file for details.
See Also
- WebdriverIO Documentation
- Dioxus Documentation
- @wdio/tauri-service - Similar service for Tauri apps
- @wdio/electron-service - Similar service for Electron apps