Skip to main content
Glama

element_tap

Simulate clicking WXML elements using CSS selectors to interact with WeChat mini program components. Use innerSelector parameter to click elements inside custom components for automated testing and development.

Instructions

通过 CSS 选择器模拟点击 WXML 元素。如需点击自定义组件内部的元素,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionNo
selectorYes
innerSelectorNo
waitMsNo

Implementation Reference

  • The execute function implementing the core logic: parses input, resolves element via selector, performs tap(), waits if needed, returns success message.
    execute: async (rawArgs, context: ToolContext) => { const args = tapElementParameters.parse(rawArgs ?? {}); const waitMs = args.waitMs; return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); await element.tap(); await waitOnPage(page, waitMs); return toTextResult( `已点击元素 "${args.selector}"${args.innerSelector ? ` -> "${args.innerSelector}"` : ""}${waitMs ? ` 并等待 ${waitMs}ms` : ""}。` ); } ); },
  • Input schema using Zod: extends connectionContainerSchema with selector (string), optional innerSelector (string), optional waitMs (non-negative int).
    const tapElementParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), waitMs: z.coerce.number().int().nonnegative().optional(), });
  • Tool object registration in createTapElementTool: sets name 'element_tap', description, parameters schema, and execute handler. This object is returned and included in createElementTools array.
    return { name: "element_tap", description: "通过 CSS 选择器模拟点击 WXML 元素。如需点击自定义组件内部的元素,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。", parameters: tapElementParameters, execute: async (rawArgs, context: ToolContext) => { const args = tapElementParameters.parse(rawArgs ?? {}); const waitMs = args.waitMs; return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); await element.tap(); await waitOnPage(page, waitMs); return toTextResult( `已点击元素 "${args.selector}"${args.innerSelector ? ` -> "${args.innerSelector}"` : ""}${waitMs ? ` 并等待 ${waitMs}ms` : ""}。` ); } ); }, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yfmeii/weapp-dev-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server