Skip to main content
Glama

Screenshot Website Fast

by just-every
screencast.test.tsโ€ข2.11 kB
import { describe, it, expect, afterAll } from 'vitest'; import { captureScreencast, closeBrowser } from '../src/internal/screenshotCapture'; describe('Screencast Capture', () => { afterAll(async () => { await closeBrowser(); }); it('should capture basic screencast', async () => { const result = await captureScreencast({ url: 'https://example.com', duration: 2, interval: 2, }); // With 2s intervals, 2 seconds = 1 frame expect(result.frames).toHaveLength(1); expect(result.duration).toBe(2); expect(result.interval).toBe(2); expect(result.viewport.width).toBe(1072); expect(result.viewport.height).toBe(1072); // Check each frame result.frames.forEach((frame, index) => { expect(frame.screenshot).toBeInstanceOf(Buffer); expect(frame.screenshot.length).toBeGreaterThan(0); expect(frame.index).toBe(index); expect(frame.timestamp).toBeInstanceOf(Date); }); }, 10000); it('should execute JavaScript before capture', async () => { const result = await captureScreencast({ url: 'https://example.com', duration: 2, interval: 2, jsEvaluate: `document.title = 'Test Title';`, }); // JavaScript executes at 1s intervals, so with 1 instruction and 2s duration = 1 frame expect(result.frames).toHaveLength(1); // JavaScript was executed (we can't verify the result directly but no error means success) }, 10000); it('should respect custom viewport size', async () => { const result = await captureScreencast({ url: 'https://example.com', duration: 2, interval: 2, viewport: { width: 800, height: 600, }, }); expect(result.viewport.width).toBe(800); expect(result.viewport.height).toBe(600); expect(result.frames).toHaveLength(1); // 2 seconds at 2s intervals }, 10000); });

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/just-every/mcp-screenshot-website-fast'

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