drag - kubed-io/selenium-flow GitHub Wiki

drag

Drag an element onto another element (to), or by an offset in pixels (by_x, by_y); give one or the other. A range slider is by_x; a card into a column is to.

MCP tool drag
HTTP POST /browser/drag

The pointer presses, glides and releases with short holds at each end, which drag libraries need. On Chrome this also completes native HTML5 drag-and-drop; on Firefox it does not, so a draggable=true element there may need the page's own fallback.

Parameters

Name Type Required Default
selector Selector no โ€”
to Selector no โ€”
by_x integer no โ€”
by_y integer no โ€”
url string no โ€”
wait_timeout integer no 30
glide boolean no true

Every call names its workspace: an X-Workspace header, or ?workspace=<name>. Sending both is refused. See Workspaces.

Returns

Field Type Notes
from object Where the drag started, in viewport pixels.
to object Where it was released, in viewport pixels.
glided boolean Whether the travel was incremental.
clamped string Present when the destination was outside the window, so the drag stopped at its edge.
url string Current URL after the action.
title string Page title after the action.
site_data object Present only when site data was restored, skipped or forgotten in this call.
page object Present only when this browser was opened with capture=true and the page reported a failure while the call ran: what it caused, and where to read it.

Errors

Status Means
400 The request cannot succeed as sent โ€” a missing field, a value that was rejected, or a locator that matched nothing before the wait ran out. Do not retry it unchanged.
401 Missing or wrong bearer token.
404 No such browser session. It ended, the Grid reaped it, or the id was never real. Open a new one and retry.
413 The body is over its cap: 1 MiB of JSON, 64 MiB of upload, 1 MiB of flow YAML. Send less; retrying it unchanged will fail again.
500 Something failed that this server did not expect.
503 The Grid could not serve this โ€” unreachable, or no free slot for a new browser. Worth retrying after a wait.

Over MCP the same failures arrive as a tool error.

Example

MCP

drag()

HTTP

curl -X POST $SELENIUM_FLOW/browser/drag \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace: $WORKSPACE"

โ† All actions ยท Installing ยท Deployment

โš ๏ธ **GitHub.com Fallback** โš ๏ธ