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
| 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",