browser_get_text
Extract text from web elements using CSS selectors to automate data collection or verification in browser automation workflows.
Instructions
获取元素文本
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS 选择器 | |
| sessionId | No | 会话 ID(可选) |
Implementation Reference
- src/tools/browser.js:236-250 (handler)The core handler function for the 'browser_get_text' tool. It retrieves the Puppeteer page for the session, waits for the selector, and extracts the text content of the element.async getText(selector, sessionId = 'default') { try { const page = this.pages.get(sessionId); if (!page) { return { success: false, error: '浏览器未启动' }; } await page.waitForSelector(selector, { timeout: 5000 }); const text = await page.$eval(selector, el => el.textContent); return { success: true, selector, text }; } catch (error) { return { success: false, error: error.message }; } }
- src/tools/browser.js:87-98 (schema)The tool schema definition including name, description, and inputSchema for validation of parameters (selector required, sessionId optional).{ name: 'browser_get_text', description: '获取元素文本', inputSchema: { type: 'object', properties: { selector: { type: 'string', description: 'CSS 选择器' }, sessionId: { type: 'string', description: '会话 ID(可选)' }, }, required: ['selector'], }, },
- src/tools/browser.js:112-116 (registration)Registers 'browser_get_text' in the list of tools this class can handle via the canHandle method.canHandle(toolName) { const tools = ['browser_launch', 'browser_navigate', 'browser_click', 'browser_type', 'browser_screenshot', 'browser_get_text', 'browser_close']; return tools.includes(toolName); }
- src/tools/browser.js:118-144 (registration)Registers the handler dispatch for 'browser_get_text' in the executeTool switch statement, calling the getText method.async executeTool(name, args) { if (!this.puppeteerAvailable) { return { success: false, error: 'puppeteer 未安装。请运行: npm install puppeteer' }; } switch (name) { case 'browser_launch': return await this.launchBrowser(args.headless, args.sessionId); case 'browser_navigate': return await this.navigate(args.url, args.sessionId); case 'browser_click': return await this.click(args.selector, args.sessionId); case 'browser_type': return await this.type(args.selector, args.text, args.sessionId); case 'browser_screenshot': return await this.screenshot(args.path, args.fullPage, args.sessionId); case 'browser_get_text': return await this.getText(args.selector, args.sessionId); case 'browser_close': return await this.closeBrowser(args.sessionId); default: throw new Error(`未知工具: ${name}`); } }