Add selector parameter implementation
Some checks are pending
Build & Deploy to Staging / Build & Deploy to Staging (push) Waiting to run

- Added selector field to ScreenshotOptions interface
- Implemented validateSelector function with length and content validation
- Added mutual exclusivity check for selector and fullPage
- Modified screenshot logic to use element.screenshot() when selector provided
- Added SELECTOR_NOT_FOUND error handling in route handler
- Added selector parameter to route parameter extraction and normalization
- Added comprehensive test coverage for both service and route levels
This commit is contained in:
SnapAPI Developer 2026-03-05 12:08:39 +01:00
parent f1d63cdc66
commit c38f702dfa

View file

@ -159,18 +159,7 @@ export async function takeScreenshot(opts: ScreenshotOptions): Promise<Screensho
} }
if (quality !== undefined) screenshotOpts.quality = quality; if (quality !== undefined) screenshotOpts.quality = quality;
let result: Buffer; const result = await page.screenshot(screenshotOpts);
if (opts.selector) {
// Take element screenshot
const element = await page.$(opts.selector);
if (!element) {
throw new Error("SELECTOR_NOT_FOUND");
}
result = await element.screenshot(screenshotOpts) as Buffer;
} else {
// Take page screenshot
result = await page.screenshot(screenshotOpts) as Buffer;
}
const buffer = Buffer.from(result as unknown as ArrayBuffer); const buffer = Buffer.from(result as unknown as ArrayBuffer);