Input
Input API
Section titled “Input API”click(selector, options?)andclick(x, y, options?)clickAt(x, y)type(text, options?)press(key, options?)shortcut(shortcut | shortcut[], options?)fill(selector, value, options?)selectOption(selector, value, options?)setChecked(selector, checked, options?)dragFromToSelectors(fromSelector, toSelector, options?)dragFromToPoints(fromX, fromY, toX, toY, options?)dragStartAt(x, y)dragMoveTo(x, y, options?)dragReleaseAt(x?, y?)drag(...)(legacy compatibility alias)scroll(dx, dy)scrollTo(selector, options?)resize(width, height)
Typing speed control
Section titled “Typing speed control”Use perCharacterDelayMs to control typing speed.
await view.type("hello", { perCharacterDelayMs: 120 });Lower values type faster. 0 sends characters as fast as possible.
Form helpers
Section titled “Form helpers”Use direct form helpers when you want deterministic value updates without per-character typing.
await view.fill("#email", "alice@example.com");await view.selectOption("#role", "admin");await view.setChecked("#agree", true);Keyboard shortcuts
Section titled “Keyboard shortcuts”press stays available for explicit key/modifier control. shortcut adds a parser for compact combos.
await view.press("C", { ctrlKey: true });await view.shortcut("Ctrl+C");await view.shortcut(["Ctrl+A", "Escape", "Tab"]);Drag operations
Section titled “Drag operations”Use explicit selector- or point-based drag helpers for clarity.
await view.dragFromToSelectors("#item", "#drop-zone", { steps: 16, durationMs: 200 });await view.dragFromToPoints(120, 180, 360, 180, { steps: 8, durationMs: 120 });For full control over drag lifecycle and release timing:
await view.dragStartAt(120, 180);await view.dragMoveTo(360, 180, { steps: 10, durationMs: 160 });await view.dragReleaseAt();Where it is used
Section titled “Where it is used”The input layer is built on top of CDP and DOM helpers, so element resolution stays consistent across click and scroll operations.