playwright/docs/src/screenshots.md

2.4 KiB

id title
screenshots Screenshots

Here is a quick way to capture a screenshot and save it into a file:

await page.screenshot({ path: 'screenshot.png' });
await page.screenshot(path="screenshot.png")
page.screenshot(path="screenshot.png")
page.screenshot(new Page.ScreenshotOptions()
      .setPath(Paths.get("screenshot.png")))
await Page.ScreenshotAsync(new()
{
    Path = "screenshot.png",
});

Screenshots API accepts many parameters for image format, clip area, quality, etc. Make sure to check them out.

Full page screenshots

Full page screenshot is a screenshot of a full scrollable page, as if you had a very tall screen and the page could fit it entirely.

await page.screenshot({ path: 'screenshot.png', fullPage: true });
page.screenshot(new Page.ScreenshotOptions()
  .setPath(Paths.get("screenshot.png"))
  .setFullPage(true));
await page.screenshot(path="screenshot.png", full_page=True)
page.screenshot(path="screenshot.png", full_page=True)
await Page.ScreenshotAsync(new()
{
    Path = "screenshot.png",
    FullPage = true,
});

Capture into buffer

Rather than writing into a file, you can get a buffer with the image and post-process it or pass it to a third party pixel diff facility.

const buffer = await page.screenshot();
console.log(buffer.toString('base64'));
byte[] buffer = page.screenshot();
System.out.println(Base64.getEncoder().encode(buffer));
# Capture into Image
screenshot_bytes = await page.screenshot()
print(base64.b64encode(screenshot_bytes).decode())
screenshot_bytes = page.screenshot()
print(base64.b64encode(screenshot_bytes).decode())
var bytes = await page.ScreenshotAsync();
Console.WriteLine(Convert.ToBase64String(bytes));

Element screenshot

Sometimes it is useful to take a screenshot of a single element.

await page.locator('.header').screenshot({ path: 'screenshot.png' });
page.locator(".header").screenshot(new Locator.ScreenshotOptions().setPath(Paths.get("screenshot.png")));
await page.locator(".header").screenshot(path="screenshot.png")
page.locator(".header").screenshot(path="screenshot.png")
await page.Locator(".header").ScreenshotAsync(new() { Path = "screenshot.png" });