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