element_input
Input text into specified elements within WeChat Mini Programs. Use innerSelector to target elements inside custom components for precise text entry during automated testing.
Instructions
向指定元素输入文本。如需向自定义组件内部的元素输入,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| selector | Yes | ||
| innerSelector | No | ||
| value | Yes |
Implementation Reference
- src/tools/element.ts:116-141 (handler)The handler function for the 'element_input' tool. It resolves the target element using the provided selector and optional innerSelector, inputs the specified value, and returns a confirmation message.function createInputTextTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_input", description: "向指定元素输入文本。如需向自定义组件内部的元素输入,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。", parameters: inputTextParameters, execute: async (rawArgs, context: ToolContext) => { const args = inputTextParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); await element.input(args.value); return toTextResult( `已向元素 "${args.selector}"${args.innerSelector ? ` -> "${args.innerSelector}"` : ""} 输入值 "${args.value}"。` ); } ); }, }; }
- src/tools/element.ts:22-26 (schema)Zod schema defining the input parameters for the 'element_input' tool: selector, optional innerSelector, and value.const inputTextParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), value: z.union([z.string(), z.coerce.number()]), });
- src/tools/element.ts:70-84 (registration)Factory function that registers the 'element_input' tool (via createInputTextTool) 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:1-13 (registration)Main tools factory that imports and registers element tools (including 'element_input') by spreading createElementTools.import { createApplicationTools } from "./tools/application.js"; import { AnyTool } from "./tools/common.js"; import { createElementTools } from "./tools/element.js"; import { createPageTools } from "./tools/page.js"; import { WeappAutomatorManager } from "./weappClient.js"; export function createTools(manager: WeappAutomatorManager): AnyTool[] { return [ ...createApplicationTools(manager), ...createPageTools(manager), ...createElementTools(manager), ]; }