Platform Support
Complete guide to platform-specific requirements, limitations, and WebDriver setup for Tauri testing.
Platform Support Overview
| Platform | Supported | WebDriver | Driver Provider | Setup |
|---|---|---|---|---|
| Windows | ✅ Yes | Microsoft Edge WebDriver | All (official, crabnebula, embedded) | Auto-managed |
| Linux | ✅ Yes | WebKitWebDriver | All (official, crabnebula, embedded) | Manual install |
| macOS | ✅ Yes | Built-in | 'embedded', 'crabnebula' | No external driver needed |
Windows
WebDriver: Microsoft Edge WebDriver
Windows uses the Microsoft Edge WebDriver (msedgedriver.exe) which communicates with the WebView2 runtime embedded in your Tauri app.
Auto-Management (Recommended)
The service automatically:
- Detects the WebView2 version in your Tauri binary
- Downloads the matching MSEdgeDriver if missing
- Handles version mismatches
Configuration:
services: [['@wdio/tauri-service', {
autoDownloadEdgeDriver: true, // Default: true
}]],
Manual Setup
If auto-management fails:
-
Detect your WebView2 version
- Build your app:
cargo build --release - Right-click the .exe → Properties → Details
- Note the "File version" (e.g., 143.0.3650.139)
- Build your app:
-
Download matching MSEdgeDriver
- Visit Microsoft Edge WebDriver
- Download the version matching your WebView2
- Extract to PATH or specify in config
-
Configure WebdriverIO
services: [['@wdio/tauri-service', {
autoDownloadEdgeDriver: false,
tauriDriverPort: 4444,
}]],
Troubleshooting Windows Issues
"This version of Microsoft Edge WebDriver only supports Microsoft Edge version X"
Version mismatch between driver and WebView2. Solutions:
-
Enable auto-download (default):
autoDownloadEdgeDriver: true -
Or manually match versions:
- Check WebView2 version in your binary
- Download corresponding MSEdgeDriver
- Update PATH or config
"msedgedriver.exe not found"
-
Check if installed:
where msedgedriver.exe -
Install or download from Microsoft Edge WebDriver
-
Add to PATH or disable auto-download and specify manually
Alternative Driver Providers on Windows
The default Windows setup uses tauri-driver + MSEdgeDriver (the 'official' provider), but both other providers also work on Windows:
| Provider | Notes |
|---|---|
'official' | Default — uses tauri-driver + MSEdgeDriver, auto-managed |
'embedded' | Requires tauri-plugin-wdio-webdriver in your app; no external driver |
'crabnebula' | Requires a paid CrabNebula API key; cross-platform alternative |
Use 'embedded' if you want a consistent setup across Windows, Linux, and macOS without managing external drivers. Use 'crabnebula' if you already have a CrabNebula subscription.
Windows-Specific Features
- ✅ Full Tauri API support
- ✅ Command execution
- ✅ Mocking with tauri-plugin-wdio
- ✅ Log capture (frontend and backend)
- ✅ Screenshot capture
- ✅ File operations
- ✅ Multiremote testing
Requirements
- Visual C++ Build Tools or Visual Studio
- Rust toolchain (for building Tauri apps)
- Node.js 18+
Linux
WebDriver: WebKitWebDriver
Linux uses WebKitWebDriver (WebKitGTK) which communicates with the Tauri app's WebKit runtime.
Installation by Distribution
Debian/Ubuntu (✅ Supported)
sudo apt-get update
sudo apt-get install -y webkit2gtk-driver
# Verify installation
which webkit2gtk-driver
Fedora 40+ (✅ Supported)
sudo dnf install -y webkit2gtk-driver
# Verify installation
which webkit2gtk-driver
Arch Linux (✅ Supported)
WebKitWebDriver is provided by webkit2gtk:
sudo pacman -S webkit2gtk-4.1
# Verify installation
which webkit2gtk-driver
Void Linux (✅ Supported)
sudo xbps-install -y webkit2gtk-devel
# Verify installation
which webkit2gtk-driver
Alpine Linux (❌ Not Supported)
Alpine uses musl C library which is incompatible with Tauri app building. Alpine can only be used as a runtime container, not for building Tauri apps.
CentOS Stream / RHEL (❌ Not Supported)
- Stream 9 / RHEL 9: glib 2.68 is too old (requires 2.70+)
- Stream 10 / RHEL 10: WebKitGTK intentionally removed due to security vulnerabilities
Recommendation: Use Fedora 40+ for RHEL-based distributions.
openSUSE / SUSE (❌ Not Supported)
No official WebKitWebDriver package. Building from source is complex and not recommended.
Other Distributions
Check if webkit2gtk is available:
# Debian-based
apt search webkit2gtk-driver
# RedHat-based
dnf search webkit2gtk-driver
# Pacman-based
pacman -Ss webkit2gtk
Headless Testing
To run tests without a display (CI/CD environments):
With Xvfb (X Virtual Framebuffer)
Install Xvfb:
sudo apt-get install -y xvfb # Debian/Ubuntu
sudo dnf install -y xvfb # Fedora
Run tests:
xvfb-run -a npm run test:e2e
Or automatically via WebdriverIO (requires wdio 9.19.1+):
services: [['@wdio/tauri-service', {
// Xvfb is auto-detected and used if available
}]],
With Wayland
If you're on a Wayland desktop:
# Set XWayland if needed
export GDK_BACKEND=x11
npm run test:e2e
Troubleshooting Linux Issues
"webkit2gtk-driver not found"
-
Verify installation:
which webkit2gtk-driver -
If not found, install for your distribution (see above)
-
Add to PATH if in non-standard location:
export PATH="/path/to/driver:$PATH"
"X11 connection refused" or "Cannot open display"
Your system doesn't have a display server. Solutions:
-
Use Xvfb
xvfb-run -a npm run test:e2e -
Or use Docker with X11 forwarding
docker run -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-image -
Or enable headless mode (if supported):
export WAYLAND_DISPLAY=""
npm run test:e2e
"glib version too old"
CentOS Stream / RHEL issue. Use Fedora 40+ instead.
"Permission denied" when installing webkit2gtk
Use sudo for package installation:
sudo apt-get install webkit2gtk-driver