type
Input text into specified elements on a webpage using a selector for browser automation tasks with Playwright MCP.
Instructions
Type text into an input element
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | No | ||
| selector | Yes | ||
| text | Yes |
Input Schema (JSON Schema)
{
"properties": {
"page_id": {
"type": "string"
},
"selector": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"selector",
"text"
],
"type": "object"
}
Implementation Reference
- src/playwright_mcp/server.py:246-254 (handler)The core handler logic for the 'type' tool. It retrieves the selector and text from arguments, validates them, gets the active page, and uses Playwright's page.fill() to type the text into the element.elif name == "type": selector = arguments.get("selector") text = arguments.get("text") if not selector or text is None: raise ValueError("Selector and text are required") page = get_active_page(arguments.get("page_id")) await page.fill(selector, text) return [types.TextContent(type="text", text=f"Typed '{text}' into {selector}")]
- src/playwright_mcp/server.py:109-121 (registration)Registration of the 'type' tool in the handle_list_tools() function, including its name, description, and input schema.types.Tool( name="type", description="Type text into an input element", inputSchema={ "type": "object", "properties": { "selector": {"type": "string"}, "text": {"type": "string"}, "page_id": {"type": "string"}, }, "required": ["selector", "text"], }, ),
- src/playwright_mcp/server.py:112-120 (schema)Input schema definition for the 'type' tool, specifying the required selector and text parameters, and optional page_id.inputSchema={ "type": "object", "properties": { "selector": {"type": "string"}, "text": {"type": "string"}, "page_id": {"type": "string"}, }, "required": ["selector", "text"], },
- src/playwright_mcp/server.py:200-211 (helper)Helper function used by the 'type' handler (and others) to retrieve the Playwright Page instance based on the provided page_id or the current default.def get_active_page(page_id: Optional[str] = None) -> Page: """Get the active page based on page_id or current default.""" global current_page_id if page_id is None: page_id = current_page_id if page_id not in pages: raise ValueError(f"Page not found: {page_id}") return pages[page_id]