element_callMethod
Invoke a method on a custom component instance in a WeChat mini program, enabling automated testing and interaction with component-specific behaviors.
Instructions
调用组件实例指定方法,仅自定义组件可以使用。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| selector | Yes | ||
| innerSelector | No | ||
| method | Yes | ||
| args | No |
Implementation Reference
- src/tools/element.ts:223-256 (handler)The main handler/executor for the element_callMethod tool. It resolves an element via selector/innerSelector, calls element.callMethod(args.method, ...callArgs), and returns the result as formatted JSON.
function createCallElementMethodTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_callMethod", description: "调用组件实例指定方法,仅自定义组件可以使用。", parameters: callElementMethodParameters, execute: async (rawArgs, context: ToolContext) => withUserErrorResult(async () => { const args = callElementMethodParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); const callArgs = args.args ?? []; const result = await element.callMethod(args.method, ...callArgs); return toTextResult( formatJson({ selector: args.selector, innerSelector: args.innerSelector ?? null, method: args.method, arguments: callArgs, result: toSerializableValue(result), }) ); } ); }), }; } - src/tools/element.ts:31-36 (schema)Input parameter schema (Zod) for element_callMethod: requires selector (string), optional innerSelector (string), method (string), and optional args (array of unknown values).
const callElementMethodParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), method: z.string().trim().min(1), args: z.array(z.unknown()).optional(), }); - src/tools/element.ts:94-111 (registration)Registration: createElementTools() includes createCallElementMethodTool(manager) in the array of tools on line 100.
export function createElementTools( manager: WeappAutomatorManager ): AnyTool[] { return [ createTapElementTool(manager), createInputTextTool(manager), createCallElementMethodTool(manager), createGetElementDataTool(manager), createSetElementDataTool(manager), createGetInnerElementTool(manager), createGetInnerElementsTool(manager), createGetElementWxmlTool(manager), createGetElementStylesTool(manager), createScrollToTool(manager), createGetAttributesTool(manager), createGetBoundingClientRectTool(manager), ]; } - src/tools.ts:7-13 (registration)Top-level registration: createTools() exports createElementTools(manager) which ultimately exposes the element_callMethod tool.
export function createTools(manager: WeappAutomatorManager): AnyTool[] { return [ ...createApplicationTools(manager), ...createPageTools(manager), ...createElementTools(manager), ]; } - src/tools/common.ts:15-17 (helper)connectionContainerSchema used as base schema for the tool parameters, defined in common helpers.
export const connectionContainerSchema = z.object({ connection: connectionOverridesSchema.optional(), });