Summary
On Linux with WebKitWebDriver 2.52.3 (Ubuntu 26.04), driving a Tauri app through tauri-driver 2.0.6, every W3C Element Send Keys request (POST /session/{id}/element/{id}/value, i.e. WebdriverIO setValue/addValue/clearValue) fails with:
invalid argument: Missing text parameter when running "element/<id>/value" with method "POST"
The WebDriver Actions API (POST /session/{id}/actions, e.g. browser.keys()) works fine against the same element — only the Element Send Keys endpoint is affected.
Root cause
WebKitWebDriver 2.52.3 now requires the W3C text field on Element Send Keys and rejects a body that carries only the legacy JSON-Wire-Protocol value array. (The older webkit2gtk-driver 2.4.x accepted the legacy value, so this was latent until Ubuntu 26.04 / WebKitGTK 2.52.)
A WebdriverIO v9 client emits the W3C text field, and talking to WebKitWebDriver 2.52.3 directly it works. The failure appears only when the same client goes through tauri-driver — so the text field is being lost in the tauri-driver hop. Two candidate mechanisms:
tauri-driver forwards the Element Send Keys body as legacy { "value": [...] } (without text), or
tauri-driver's POST /session response isn't cleanly W3C, so the client negotiates legacy JSONWP and emits value instead of text.
Minimal repro of the driver-side contract (no Tauri required)
ubuntu:26.04 ships WebKitWebDriver 2.52.3-0ubuntu0.26.04.3. Driving it directly with webdriverio v9.30 + MiniBrowser, against a plain <input>:
| Element Send Keys body |
Result |
WDIO setValue('hello') (client emits { text }) |
✅ works |
raw { "text": "hello" } |
✅ 200 |
raw { "value": ["h","i"] } (legacy, no text) |
❌ 400 invalid argument: Missing text parameter |
raw { "text": "...", "value": [...] } |
✅ 200 |
So any client that omits text (sends only the legacy value array) reproduces the exact error on 2.52.3. Through tauri-driver, the request is arriving at WebKitWebDriver without text.
Environment
tauri-driver 2.0.6 (cargo-installed)
WebKitWebDriver 2.52.3-0ubuntu0.26.04.3, Ubuntu 26.04
- Tauri 2.11.5, wry 0.55.1
- WebdriverIO 9.30.x, Node 24
Ask
Could tauri-driver ensure the W3C text field on Element Send Keys survives the proxy end-to-end (and/or that its POST /session handshake is negotiated as pure W3C so clients emit text)? As Ubuntu 26.04 / WebKitGTK 2.52+ rolls out, this will hit every Tauri user doing text input via WebDriver.
Originally surfaced downstream against @wdio/tauri-service (webdriverio/desktop-mobile#591); there we verified that both our service and WebdriverIO itself send the W3C text field correctly, and that our own in-process WebDriver server accepts it.
Summary
On Linux with
WebKitWebDriver2.52.3 (Ubuntu 26.04), driving a Tauri app throughtauri-driver2.0.6, every W3C Element Send Keys request (POST /session/{id}/element/{id}/value, i.e. WebdriverIOsetValue/addValue/clearValue) fails with:The WebDriver Actions API (
POST /session/{id}/actions, e.g.browser.keys()) works fine against the same element — only the Element Send Keys endpoint is affected.Root cause
WebKitWebDriver2.52.3 now requires the W3Ctextfield on Element Send Keys and rejects a body that carries only the legacy JSON-Wire-Protocolvaluearray. (The olderwebkit2gtk-driver2.4.x accepted the legacyvalue, so this was latent until Ubuntu 26.04 / WebKitGTK 2.52.)A WebdriverIO v9 client emits the W3C
textfield, and talking toWebKitWebDriver2.52.3 directly it works. The failure appears only when the same client goes throughtauri-driver— so thetextfield is being lost in thetauri-driverhop. Two candidate mechanisms:tauri-driverforwards the Element Send Keys body as legacy{ "value": [...] }(withouttext), ortauri-driver'sPOST /sessionresponse isn't cleanly W3C, so the client negotiates legacy JSONWP and emitsvalueinstead oftext.Minimal repro of the driver-side contract (no Tauri required)
ubuntu:26.04shipsWebKitWebDriver2.52.3-0ubuntu0.26.04.3. Driving it directly withwebdriveriov9.30 + MiniBrowser, against a plain<input>:setValue('hello')(client emits{ text }){ "text": "hello" }200{ "value": ["h","i"] }(legacy, notext)400 invalid argument: Missing text parameter{ "text": "...", "value": [...] }200So any client that omits
text(sends only the legacyvaluearray) reproduces the exact error on 2.52.3. Throughtauri-driver, the request is arriving atWebKitWebDriverwithouttext.Environment
tauri-driver2.0.6 (cargo-installed)WebKitWebDriver2.52.3-0ubuntu0.26.04.3, Ubuntu 26.04Ask
Could
tauri-driverensure the W3Ctextfield on Element Send Keys survives the proxy end-to-end (and/or that itsPOST /sessionhandshake is negotiated as pure W3C so clients emittext)? As Ubuntu 26.04 / WebKitGTK 2.52+ rolls out, this will hit every Tauri user doing text input via WebDriver.Originally surfaced downstream against
@wdio/tauri-service(webdriverio/desktop-mobile#591); there we verified that both our service and WebdriverIO itself send the W3Ctextfield correctly, and that our own in-process WebDriver server accepts it.