browser_press_key
Press a keyboard key. Supports special keys (Enter, Tab, Escape, arrow keys, etc.) and single characters (a-z, A-Z, 0-9). The key is sent to the currently focused element. Common uses: Enter to submit forms, Tab to move between fields, Escape to close modals, Arrow keys for navigation in menus or sliders, or single characters for keyboard shortcuts.
When to use browser_press_key
Use browser_press_key when you need to simulate real human interaction with page elements. It is part of Owl Browser's Page Interaction toolset and runs inside a self-hosted, source-level stealth engine, so every call inherits the same undetectable browser fingerprint as the rest of your automation — no separate anti-detect setup required.
Usage Example
Parameters
Required
context_idstringrequiredThe unique identifier of the browser context (e.g., 'ctx_000001')
keystringrequiredKey to press. Supports special keys: 'Enter', 'Tab', 'Escape', 'Backspace', 'Delete', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Space', 'Home', 'End', 'PageUp', 'PageDown'. Also supports single characters: 'a'-'z', 'A'-'Z', '0'-'9'. The key is sent to the currently focused element
Response
Returns a JSON object with the operation result.
{
"success": true,
"result": <value>
}Frequently Asked Questions
What does browser_press_key do?
Press a keyboard key. Supports special keys (Enter, Tab, Escape, arrow keys, etc.) and single characters (a-z, A-Z, 0-9). The key is sent to the currently focused element. Common uses: Enter to submit forms, Tab to move between fields, Escape to close modals, Arrow keys for navigation in menus or sliders, or single characters for keyboard shortcuts. It belongs to Owl Browser's Page Interaction category and is available through the REST API, the Python SDK (browser.press_key()), the Node.js SDK, and the MCP server.
What parameters does browser_press_key accept?
browser_press_key accepts 2 required parameters (context_id, key) and 0 optional parameters. All parameters are sent as JSON in a POST request to /api/execute/browser_press_key.
Is browser_press_key detectable by anti-bot systems like Cloudflare or DataDome?
No. browser_press_key executes inside Owl Browser's Chromium engine, which applies fingerprint spoofing at the C++ source level rather than through JavaScript patches. Every tool call shares the same consistent, human-like fingerprint, so anti-bot systems such as Cloudflare, DataDome, and Akamai see an ordinary browser.
Related Tools
browser_clickClick on an element using CSS selector, XY coordinates, or natural language description. Supports semantic element finding using AI - describe what you want to click (e.g., 'login button', 'search icon') and the system will locate the right element. Simulates a real mouse click with proper event dispatch. Optionally hold the mouse button for press-and-hold interactions using hold_ms.
browser_typeType text into an input field with human-like keystroke simulation. Target the field using CSS selector, coordinates, or natural language (e.g., 'email field'). When selector is omitted, types into the currently focused element. Note: Does NOT clear existing content - use browser_clear_input first if you need to replace text rather than append.
browser_pickSelect an option from a dropdown or select element. Works with native HTML select elements and dynamic/custom dropdowns (like select2, react-select). Specify the option by its value or visible text. Automatically handles opening the dropdown and selecting the option.
browser_submit_formSubmit the currently focused form by simulating an Enter key press. Equivalent to pressing Enter in a form field. Useful for search boxes and forms that submit on Enter. The form must have a focused input element.
browser_drag_dropPerform a mouse drag operation from start coordinates to end coordinates. Used for slider CAPTCHAs, puzzle solving, canvas drawing, and custom drag interactions. Uses realistic mouse movement with bezier curves. For HTML5 draggable elements, use browser_html5_drag_drop instead.
browser_html5_drag_dropPerform HTML5 drag and drop using proper DragEvent dispatch. Use this for elements with draggable='true' attribute, sortable lists, and interfaces using the HTML5 Drag and Drop API. Dispatches dragstart, dragover, drop, and dragend events in the correct sequence.