element_scrollTo
Scroll a scroll-view component to specific coordinates within a WeChat Mini Program. Provide a CSS selector and x, y values to set the scroll position.
Instructions
滚动 scroll-view 组件到指定位置。仅适用于 scroll-view 组件。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| selector | Yes | ||
| innerSelector | No | ||
| x | Yes | ||
| y | Yes |
Implementation Reference
- src/tools/element.ts:512-545 (handler)The execute function that performs the scrollTo logic: parses parameters, resolves the element, checks it's a scroll-view, and calls element.scrollTo(x, y).
function createScrollToTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_scrollTo", description: "滚动 scroll-view 组件到指定位置。仅适用于 scroll-view 组件。", parameters: scrollToParameters, execute: async (rawArgs, context: ToolContext) => withUserErrorResult(async () => { const args = scrollToParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); if (typeof element.scrollTo !== "function") { throw new UserError( `元素 "${args.selector}" 不支持滚动操作,仅 scroll-view 组件可使用此功能。` ); } await element.scrollTo(args.x, args.y); return toTextResult( `已将元素 "${args.selector}"${args.innerSelector ? ` -> "${args.innerSelector}"` : ""} 滚动到位置 (${args.x}, ${args.y})。` ); } ); }), }; } - src/tools/element.ts:76-81 (schema)Zod schema defining input parameters: selector (required), innerSelector (optional), x and y (coerced numbers).
const scrollToParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), x: z.coerce.number(), y: z.coerce.number(), }); - src/tools/element.ts:94-110 (registration)The createScrollToTool(manager) is included in the createElementTools array, registering it as an available tool.
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), ];