Skip to main content
Glama
visualInspection.jsβ€’1.88 kB
import { getSession } from "./sessionManagement.js"; /** * Take a screenshot of the current page * @param {string} sessionId - Session ID * @param {boolean} fullPage - Whether to capture full scrollable page * @param {string} selector - Optional selector to screenshot specific element * @returns {Promise<Object>} Screenshot information */ export async function takeScreenshot( sessionId, fullPage = false, selector = null ) { const session = getSession(sessionId); const { page } = session; let screenshotBuffer; if (selector) { const element = await page.$(selector); if (!element) { throw new Error(`Element with selector "${selector}" not found`); } screenshotBuffer = await element.screenshot(); } else { screenshotBuffer = await page.screenshot({ fullPage }); } const base64Image = screenshotBuffer.toString("base64"); return { success: true, sessionId, currentUrl: page.url(), title: await page.title(), screenshotBase64: base64Image, screenshotDataUrl: `data:image/png;base64,${base64Image}`, message: "Screenshot captured successfully", }; } /** * Get current page information * @param {string} sessionId - Session ID * @returns {Promise<Object>} Page information */ export async function getCurrentPageInfo(sessionId) { const session = getSession(sessionId); const { page, context, createdAt } = session; const pages = context.pages(); const pageInfo = { success: true, sessionId, currentUrl: page.url(), title: await page.title(), totalTabs: pages.length, currentTabIndex: pages.indexOf(page), sessionCreatedAt: createdAt, allTabs: await Promise.all( pages.map(async (p, idx) => ({ index: idx, url: p.url(), title: await p.title(), isCurrent: p === page, })) ), }; return pageInfo; }

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/pyscout/webscout-mcp'

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