DocsInput Controlbrowser_focus

browser_focus

browser_focus

Set focus to an element without clicking it. The element receives keyboard events and becomes the active element. Useful for preparing to type or when click would trigger unwanted actions.

When to use browser_focus

Use browser_focus when you need to perform fine-grained keyboard and input-field control. It is part of Owl Browser's Input Control 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

123456789101112
import asyncio
from owl_browser import OwlBrowser, RemoteConfig
# Async usage
async with OwlBrowser(config) as browser:
context = await browser.create_context()
context_id = context["context_id"]
await browser.focus(
context_id=context_id,
selector="#element-id"
)

Parameters

Required

context_idstringrequired

The unique identifier of the browser context (e.g., 'ctx_000001')

selectorstringrequired

The element to focus. Accepts any of: an OwlMark handle token from browser_observe (e.g. 'b7', 'l3', 'x2'), the most reliable target on an agent-rendered page; a CSS selector (e.g. '#submit-btn', '.nav-link', 'input[name="user"]'); viewport coordinates as 'XxY' (e.g. '100x200'); or a natural-language description (e.g. 'the login button'), resolved by the built-in semantic matcher. When a CSS selector matches several elements, append ' >> nth=N' to pin down exactly which one (0-based): '.row button >> nth=2' targets the 3rd match, ' >> nth=-1' or ' >> nth=last' the last, ' >> nth=first' the first. Without the qualifier the tool falls back to its usual disambiguation. The qualifier applies to CSS selectors only; handle tokens and coordinates already name exactly one element.

Response

Returns a JSON object with the operation result.

{
  "success": true,
  "result": <value>
}

Frequently Asked Questions

What does browser_focus do?

Set focus to an element without clicking it. The element receives keyboard events and becomes the active element. Useful for preparing to type or when click would trigger unwanted actions. It belongs to Owl Browser's Input Control category and is available through the REST API, the Python SDK (browser.focus()), the Node.js SDK, and the MCP server.

What parameters does browser_focus accept?

browser_focus accepts 2 required parameters (context_id, selector) and 0 optional parameters. All parameters are sent as JSON in a POST request to /api/execute/browser_focus.

Is browser_focus detectable by anti-bot systems like Cloudflare or DataDome?

No. browser_focus 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_clear_input

Clear all text content from an input field. Use this before browser_type to replace text rather than append to existing content. Selects all text and deletes it.

browser_blur

Remove focus from an element. Often triggers validation on form fields. Useful for forcing validation or removing focus from the current element.

browser_select_all

Select all text content within an input element. Equivalent to Ctrl+A within the field. Useful before typing to replace content or for copying the entire field value.

browser_keyboard_combo

Press a keyboard combination with modifiers. Supports Ctrl, Shift, Alt, Meta/Cmd modifiers. Examples: 'Ctrl+A' (select all), 'Ctrl+C' (copy), 'Ctrl+V' (paste), 'Ctrl+Shift+N' (new window).

browser_create_context

Create a new isolated browser context with its own cookies, storage, and optional proxy configuration. Each context acts as an independent browser session. Use this to create multiple isolated browsing sessions, configure proxy/Tor connections, load browser profiles with saved fingerprints, and enable/disable LLM features. Returns a context_id to use with other browser tools.

browser_navigate

Navigate the browser to a specified URL. This is a non-blocking operation that starts navigation and returns immediately. Use browser_wait_for_network_idle or browser_wait_for_selector to wait for the page to fully load. Supports HTTP, HTTPS, file, and data URLs. When wait_until is set (load, networkidle, fullscroll, domcontentloaded) and the page declares WebMCP tools, the response includes a webmcp_tools array containing the full tool definitions (name, description, inputSchema). Use browser_webmcp_call_tool to execute any of these tools directly.

Browse the full Owl Browser API reference or get started with the Python SDK and Node.js SDK.