Summary
The Dioxus embedded WebDriver driver (@wdio/dioxus-service via dioxus-embedded-driver) does not implement the W3C Actions endpoint. POST /session/{id}/actions (and the DELETE release) are wired to a not_implemented stub, so any WDIO command that routes through the Actions API fails.
Affected commands
Anything WebdriverIO dispatches via performActions rather than a dedicated endpoint, e.g.:
element.click(options) — .click({}), .click({ button: 'right' }), .click({ x, y }) (bare .click() works — it uses the elementClick endpoint, which is implemented as a coordinate-independent JS el.click())
element.doubleClick(), element.moveTo(), drag-and-drop
browser.action(...) / browser.actions(...) chains (pointer, key, wheel)
Symptom
The call rejects with unsupported_operation:
not implemented for Dioxus embedded driver
i.e. it fails loudly rather than silently misbehaving.
Root cause
packages/dioxus-embedded-driver/src/server/router.rs:138-142:
// Actions
.route(
"/session/{session_id}/actions",
post(handlers::stubs::not_implemented).delete(handlers::stubs::not_implemented),
)
There is no actions.rs handler — the route points at handlers/stubs.rs::not_implemented.
Relationship to #423
This is the Dioxus sibling of #423 (Tauri). The Tauri embedded driver does implement /actions, but its PointerMove struct is missing the origin field, so .click(options) silently clicks viewport (0,0) and misses. Dioxus differs in that the entire endpoint is unimplemented, so it fails loudly instead of silently. Same underlying capability gap, different symptom.
Scope of fix
Implement /session/{id}/actions (+ the DELETE release) in dioxus-embedded-driver, mirroring packages/tauri-plugin-webdriver/src/server/handlers/actions.rs:
Severity
Lower urgency than #423 — fails loudly with a clear error, and bare .click() works. Tracked as a feature gap / parity item toward the cross-service API-convergence goal.
Summary
The Dioxus embedded WebDriver driver (
@wdio/dioxus-serviceviadioxus-embedded-driver) does not implement the W3C Actions endpoint.POST /session/{id}/actions(and theDELETErelease) are wired to anot_implementedstub, so any WDIO command that routes through the Actions API fails.Affected commands
Anything WebdriverIO dispatches via
performActionsrather than a dedicated endpoint, e.g.:element.click(options)—.click({}),.click({ button: 'right' }),.click({ x, y })(bare.click()works — it uses theelementClickendpoint, which is implemented as a coordinate-independent JSel.click())element.doubleClick(),element.moveTo(), drag-and-dropbrowser.action(...)/browser.actions(...)chains (pointer, key, wheel)Symptom
The call rejects with
unsupported_operation:i.e. it fails loudly rather than silently misbehaving.
Root cause
packages/dioxus-embedded-driver/src/server/router.rs:138-142:There is no
actions.rshandler — the route points athandlers/stubs.rs::not_implemented.Relationship to #423
This is the Dioxus sibling of #423 (Tauri). The Tauri embedded driver does implement
/actions, but itsPointerMovestruct is missing theoriginfield, so.click(options)silently clicks viewport(0,0)and misses. Dioxus differs in that the entire endpoint is unimplemented, so it fails loudly instead of silently. Same underlying capability gap, different symptom.Scope of fix
Implement
/session/{id}/actions(+ theDELETErelease) indioxus-embedded-driver, mirroringpackages/tauri-plugin-webdriver/src/server/handlers/actions.rs:originresolution (viewport/pointer/ element-center viagetBoundingClientRect), key, wheel, and pause sequencesrectendpointoriginhandling correctly from the start so this does not reproduce [🐛 Bug]: Tauri plugin fails to executeclick()correctly when arguments are passed #423Severity
Lower urgency than #423 — fails loudly with a clear error, and bare
.click()works. Tracked as a feature gap / parity item toward the cross-service API-convergence goal.