Skip to content

tauri-driver drops the W3C text field on Element Send Keys → "Missing text parameter" on WebKitWebDriver 2.52.3 #15871

Description

@goosewobbler

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    scope: webdrivertauri-driver tool and other items related to WebDriverstatus: needs triageThis issue needs to triage, applied to new issuestype: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions