Skip to main content
Glama

element_getWxml

Retrieve WXML code for elements in WeChat Mini Programs, including inner or outer markup and custom component elements, to inspect and debug page structures.

Instructions

获取元素 WXML。默认获取内部 WXML(element.wxml()),设置 outer 为 true 可获取包含元素本身的 WXML(element.outerWxml())。如需获取自定义组件内部元素的 WXML,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionNo
selectorYes
innerSelectorNo
outerNo

Implementation Reference

  • The handler function createGetElementWxmlTool that defines and returns the tool object with name 'element_getWxml', its description, parameters schema, and the execute function implementing the logic to get WXML or outerWxml of the element.
    function createGetElementWxmlTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_getWxml", description: "获取元素 WXML。默认获取内部 WXML(element.wxml()),设置 outer 为 true 可获取包含元素本身的 WXML(element.outerWxml())。如需获取自定义组件内部元素的 WXML,请使用 innerSelector 参数:selector 设为组件 ID 选择器(如 #my-component),innerSelector 设为组件内部元素的选择器。", parameters: getElementWxmlParameters, execute: async (rawArgs, context: ToolContext) => { const args = getElementWxmlParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); const methodName = args.outer ? "outerWxml" : "wxml"; if (typeof element[methodName] !== "function") { throw new UserError( `元素 "${args.selector}" 不支持获取 ${methodName}。` ); } const wxml = await element[methodName](); return toTextResult( formatJson({ selector: args.selector, innerSelector: args.innerSelector ?? null, type: args.outer ? "outerWxml" : "wxml", wxml: toSerializableValue(wxml), }) ); } ); }, }; }
  • Zod schema defining the input parameters for the element_getWxml tool: selector, optional innerSelector, and optional outer flag.
    const getElementWxmlParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), outer: z.boolean().optional().default(false), });
  • src/tools.ts:7-13 (registration)
    Registration of element tools (including element_getWxml) via spreading createElementTools into the main tools array in createTools.
    export function createTools(manager: WeappAutomatorManager): AnyTool[] { return [ ...createApplicationTools(manager), ...createPageTools(manager), ...createElementTools(manager), ]; }
  • src/index.ts:17-17 (registration)
    Final MCP server registration of all tools, including element_getWxml, by calling server.addTools(createTools(manager)).
    server.addTools(createTools(manager));
  • Local registration of the element_getWxml tool within the createElementTools function that returns the array of 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), ]; }

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