element_getStyles
Retrieve specific CSS style values from a WeChat Mini Program element by specifying the element selector and an array of style property names.
Instructions
获取元素的样式值。names 为样式名数组(如 ['color', 'fontSize', 'backgroundColor'])。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| selector | Yes | ||
| innerSelector | No | ||
| names | Yes |
Implementation Reference
- src/tools/element.ts:463-510 (handler)The createGetElementStylesTool function defines the 'element_getStyles' tool handler. It takes rawArgs, parses them with getElementStylesParameters, resolves the element via selector/innerSelector, iterates over requested style names using element.style(name), and returns the styles as a JSON result.
function createGetElementStylesTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_getStyles", description: "获取元素的样式值。names 为样式名数组(如 ['color', 'fontSize', 'backgroundColor'])。", parameters: getElementStylesParameters, execute: async (rawArgs, context: ToolContext) => withUserErrorResult(async () => { const args = getElementStylesParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); if (typeof element.style !== "function") { throw new UserError( `元素 "${args.selector}" 不支持获取样式。` ); } const styles: Record<string, unknown> = {}; await Promise.all( args.names.map(async (name) => { try { styles[name] = await element.style(name); } catch { styles[name] = null; } }) ); return toTextResult( formatJson({ selector: args.selector, innerSelector: args.innerSelector ?? null, styles, }) ); } ); }), }; } - src/tools/element.ts:70-74 (schema)Zod schema for element_getStyles parameters: selector (required string), innerSelector (optional string), and names (array of strings representing style property names).
const getElementStylesParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), names: z.array(z.string().trim().min(1)), }); - src/tools/element.ts:95-111 (registration)The tool is registered in the createToolsByCategory function which returns an array of all element tools; createGetElementStylesTool(manager) is called at line 106.
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), ]; }