Skip to main content
Glama
pvinis
by pvinis

playwright_press_key

Simulate key presses on web pages to interact with elements, test functionality, or automate tasks. Optionally focus on specific elements using CSS selectors for precise control.

Instructions

Press a keyboard key

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press (e.g. 'Enter', 'ArrowDown', 'a')
selectorNoOptional CSS selector to focus before pressing key

Implementation Reference

  • The PressKeyTool class provides the core implementation for the 'playwright_press_key' tool. Its execute method optionally focuses on a selector and presses the specified key using Playwright's page.keyboard.press.
    export class PressKeyTool extends BrowserToolBase {
      /**
       * Execute the key press tool
       */
      async execute(args: any, context: ToolContext): Promise<ToolResponse> {
        return this.safeExecute(context, async (page) => {
          if (args.selector) {
            await page.waitForSelector(args.selector);
            await page.focus(args.selector);
          }
          
          await page.keyboard.press(args.key);
          return createSuccessResponse(`Pressed key: ${args.key}`);
        });
      }
    } 
  • Defines the tool name, description, and input schema (parameters: key (required), selector (optional)) for validation and documentation.
      name: "playwright_press_key",
      description: "Press a keyboard key",
      inputSchema: {
        type: "object",
        properties: {
          key: { type: "string", description: "Key to press (e.g. 'Enter', 'ArrowDown', 'a')" },
          selector: { type: "string", description: "Optional CSS selector to focus before pressing key" }
        },
        required: ["key"],
      },
    },
  • The switch case in handleToolCall dispatches calls to the 'playwright_press_key' tool to the PressKeyTool instance's execute method.
    case "playwright_press_key":
      return await pressKeyTool.execute(args, context);
  • src/tools.ts:423-423 (registration)
    Includes 'playwright_press_key' in the BROWSER_TOOLS array, used to identify browser-requiring tools and conditionally launch browser.
    "playwright_press_key",
  • Instantiates the PressKeyTool instance during tool initialization in toolHandler.ts.
    if (!pressKeyTool) pressKeyTool = new PressKeyTool(server);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pvinis/mcp-playwright-stealth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server