element_getData
Retrieve rendered data from custom component instances in WeChat Mini Programs using ID selectors to inspect component state and properties during development.
Instructions
获取组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| selector | Yes | ||
| innerSelector | No | ||
| path | No |
Implementation Reference
- src/tools/element.ts:177-207 (handler)The createGetElementDataTool function defines the tool object including the execute handler that implements the core logic: resolves the element, fetches data using element.data(path), and returns formatted JSON.function createGetElementDataTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_getData", description: "获取组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。", parameters: getElementDataParameters, execute: async (rawArgs, context: ToolContext) => { const args = getElementDataParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); const data = await element.data(args.path); return toTextResult( formatJson({ selector: args.selector, innerSelector: args.innerSelector ?? null, path: args.path ?? null, data: toSerializableValue(data), }) ); } ); }, }; }
- src/tools/element.ts:35-39 (schema)Zod schema for input parameters of element_getData tool: selector (required), innerSelector (optional), path (optional).const getElementDataParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), path: z.string().trim().min(1).optional(), });
- src/tools/element.ts:70-84 (registration)createElementTools registers the element_getData tool (line 77) among other element tools.export function createElementTools( manager: WeappAutomatorManager ): AnyTool[] { return [ createTapElementTool(manager), createInputTextTool(manager), createCallElementMethodTool(manager), createGetElementDataTool(manager), createSetElementDataTool(manager), createGetInnerElementTool(manager), createGetInnerElementsTool(manager), createGetElementSizeTool(manager), createGetElementWxmlTool(manager), ]; }
- src/tools.ts:7-13 (registration)createTools includes all element tools via createElementTools, aggregating tools from different modules.export function createTools(manager: WeappAutomatorManager): AnyTool[] { return [ ...createApplicationTools(manager), ...createPageTools(manager), ...createElementTools(manager), ]; }
- src/index.ts:17-17 (registration)Final MCP server registration: adds all tools (including element_getData) to the FastMCP server instance.server.addTools(createTools(manager));