Rayrun

How can I take a screenshot with a transparent background using Playwright?

Answer

Taking Transparent Screenshots with Playwright

Want to capture a webpage screenshot with a transparent background? Playwright's got you covered with the omitBackground option. Set it to true and the default white background disappears, leaving you with a transparent screenshot. Remember, this doesn't work with JPEGs.

import { test } from '@playwright/test';

test('screenshot with transparent background', async ({ page }) => {
  await page.goto('https://ray.run');
  await page.screenshot({ path: 'screenshot.png', omitBackground: true });
});

Playwright offers other screenshot options too. The scale option lets you decide if you want a pixel-per-CSS pixel or pixel-per-device pixel screenshot. The latter gives larger screenshots for high-DPI devices.

import { test } from '@playwright/test';

test('screenshot with scale', async ({ page }) => {
  await page.goto('https://ray.run');
  await page.screenshot({ path: 'screenshot.png', scale: 2 });
});

The clip option lets you capture a specific area of the page. Just provide the x and y coordinates of the top-left corner, and the width and height of the clip area.

import { test } from '@playwright/test';

test('screenshot with clip', async ({ page }) => {
  await page.goto('https://ray.run');
  await page.screenshot({ path: 'screenshot.png', clip: { x: 0, y: 0, width: 100, height: 100 } });
});

You can also decide if you want a full-page screenshot (fullPage) and where to save the image (path). If you want to hide certain elements in your screenshot, use locators with the mask option.

Playwright gives you a lot of flexibility with your screenshots, including the option for a transparent background. Happy testing!

References

Thank you!
Was this helpful?
Still have questions?

If you still have questions, please ask a question and I will try to answer it.

Related Questions

TwitterGitHubLinkedIn
AboutQuestionsDiscord ForumBrowser ExtensionTagsQA Jobs

Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.