playwright_evaluate
Execute JavaScript directly in the browser console to interact with web pages, extract data, or manipulate content using Playwright automation.
Instructions
Execute JavaScript in the browser console
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript code to execute |
Implementation Reference
- src/tools/browser/interaction.ts:155-179 (handler)The EvaluateTool class provides the core handler logic for the 'playwright_evaluate' tool, executing the provided JavaScript script using page.evaluate() and formatting the result.export class EvaluateTool extends BrowserToolBase { /** * Execute the evaluate tool */ async execute(args: any, context: ToolContext): Promise<ToolResponse> { return this.safeExecute(context, async (page) => { const result = await page.evaluate(args.script); // Convert result to string for display let resultStr: string; try { resultStr = JSON.stringify(result, null, 2); } catch (error) { resultStr = String(result); } return createSuccessResponse([ `Executed JavaScript:`, `${args.script}`, `Result:`, `${resultStr}` ]); }); } }
- src/tools.ts:196-206 (schema)Tool schema definition including name, description, and input schema requiring a 'script' parameter.{ name: "playwright_evaluate", description: "Execute JavaScript in the browser console", inputSchema: { type: "object", properties: { script: { type: "string", description: "JavaScript code to execute" }, }, required: ["script"], }, },
- src/toolHandler.ts:505-506 (registration)Registration in the main tool handler switch statement that dispatches calls to the EvaluateTool's execute method.case "playwright_evaluate": return await evaluateTool.execute(args, context);
- src/toolHandler.ts:328-328 (registration)Instantiation of the EvaluateTool instance during tool initialization.if (!evaluateTool) evaluateTool = new EvaluateTool(server);
- src/tools.ts:460-460 (registration)Inclusion in BROWSER_TOOLS array for conditional browser launching."playwright_evaluate",