On Windows, Tauri applications use Microsoft Edge WebView2, which requires msedgedriver.exe for WebDriver automation. The tauri-service automatically handles Edge WebDriver version matching to prevent version mismatch errors.
Tauri tests fail on Windows when your Edge browser version doesn't match the installed msedgedriver version:
Error: This version of Microsoft Edge WebDriver only supports Microsoft Edge version 144.
Current browser version is 143.0.3650.139
The tauri-service automatically:
- Detects your Edge browser version from Windows registry
- Checks if a matching msedgedriver.exe exists
- Downloads the correct version if needed (enabled by default)
- Configures PATH to use the downloaded driver
By default, auto-download is enabled. Just use the service normally:
// wdio.conf.js
export const config = {
services: [
['tauri', {
application: './path/to/your-app.exe',
// autoDownloadEdgeDriver: true (default)
}]
]
};Disable auto-download if you prefer to manage drivers yourself:
export const config = {
services: [
['tauri', {
application: './path/to/your-app.exe',
autoDownloadEdgeDriver: false
}]
]
};With auto-download disabled, you must ensure msedgedriver matches your Edge version manually.
The service detects Edge version from:
- Windows Registry:
HKLM\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062} - WMIC query:
wmic datafile where name="C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe" get Version
Checks if msedgedriver.exe in PATH matches the detected Edge version (major version comparison).
If mismatch detected:
- Downloads msedgedriver from
https://msedgedriver.azureedge.net/{version}/ - Caches in temp directory:
%TEMP%\msedgedriver\{majorVersion}\ - Adds to process PATH for test execution
Cause: Edge not installed or registry keys missing
Solution: Install Microsoft Edge from https://www.microsoft.com/edge
Causes:
- Network/proxy issues
- Microsoft's CDN temporarily unavailable
- Invalid Edge version format
Solutions:
- Check internet connection and proxy settings
- Retry - CDN may be temporarily down
- Manual download from https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Place
msedgedriver.exein PATH
Cause: Another msedgedriver.exe earlier in PATH is being used
Solution: Check PATH order:
where msedgedriver.exeEnsure the correct version appears first
Symptom: Download works locally but fails in CI
Causes:
- GitHub Actions runners may have outdated Edge
- Network restrictions
Solutions:
# .github/workflows/test.yml
- name: Update Edge (if needed)
if: runner.os == 'Windows'
run: |
choco upgrade microsoft-edge -y
- name: Run tests
run: pnpm test:e2e- Windows: Edge driver check runs automatically
- Linux: Skipped (Tauri uses WebKitGTK)
- macOS: N/A (Tauri testing not supported on macOS)
interface TauriServiceOptions {
/**
* Automatically download and configure matching msedgedriver on Windows
* @default true
* @platform Windows only
*/
autoDownloadEdgeDriver?: boolean;
}services: [
['tauri', {
application: './dist/my-app.exe'
}]
]services: [
['tauri', {
application: './dist/my-app.exe',
autoDownloadEdgeDriver: true,
tauriDriverPort: 4444
}]
]services: [
['tauri', {
application: './dist/my-app.exe',
autoDownloadEdgeDriver: false
}]
]If you disable auto-download, ensure msedgedriver matches your Edge version:
reg query "HKLM\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}" /v pv- Visit https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Download version matching your Edge major version
- Extract
msedgedriver.exe - Add to PATH or place in project directory
msedgedriver.exe --version
# Should output: MSEdgeDriver 143.x.xxxx.xxsrc/edgeDriverManager.ts- Edge driver detection and download logicsrc/launcher.ts- Integration point in onPrepare hooksrc/types.ts- TypeScript interfaces
Downloaded drivers are cached at:
%TEMP%\msedgedriver\{majorVersion}\msedgedriver.exe
Example: C:\Users\YourName\AppData\Local\Temp\msedgedriver\143\msedgedriver.exe
Enable debug logs to troubleshoot:
export const config = {
logLevel: 'debug',
services: ['tauri']
};Look for logs prefixed with [tauri-service:edge-driver]