diff --git a/tests/library/screenshot.spec.ts b/tests/library/screenshot.spec.ts index a99c3f7e70..e8bdac3313 100644 --- a/tests/library/screenshot.spec.ts +++ b/tests/library/screenshot.spec.ts @@ -444,4 +444,53 @@ browserTest.describe('element screenshot', () => { expect(screenshot).toMatchSnapshot('element-larger-than-viewport-dsf-css-size.png'); await context.close(); }); + + browserTest('page screenshot should capture css transform with device pixels', async function({ browser, browserName }) { + browserTest.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/26447' }); + browserTest.fixme(browserName === 'webkit'); + const context = await browser.newContext({ + viewport: { width: 500, height: 500 }, + deviceScaleFactor: 3, + }); + const page = await context.newPage(); + await page.setContent(` + +
+
+
+
+
+ `); + + await expect(page).toHaveScreenshot({ scale: 'device' }); + await context.close(); + }); }); diff --git a/tests/library/screenshot.spec.ts-snapshots/element-screenshot-page-screenshot-should-capture-css-transform-with-device-pixels-1-chromium.png b/tests/library/screenshot.spec.ts-snapshots/element-screenshot-page-screenshot-should-capture-css-transform-with-device-pixels-1-chromium.png new file mode 100644 index 0000000000..39823a32db Binary files /dev/null and b/tests/library/screenshot.spec.ts-snapshots/element-screenshot-page-screenshot-should-capture-css-transform-with-device-pixels-1-chromium.png differ diff --git a/tests/library/screenshot.spec.ts-snapshots/element-screenshot-page-screenshot-should-capture-css-transform-with-device-pixels-1-firefox.png b/tests/library/screenshot.spec.ts-snapshots/element-screenshot-page-screenshot-should-capture-css-transform-with-device-pixels-1-firefox.png new file mode 100644 index 0000000000..a9fab7d00e Binary files /dev/null and b/tests/library/screenshot.spec.ts-snapshots/element-screenshot-page-screenshot-should-capture-css-transform-with-device-pixels-1-firefox.png differ diff --git a/tests/page/page-screenshot.spec.ts b/tests/page/page-screenshot.spec.ts index 7ee3900896..bea03d1d30 100644 --- a/tests/page/page-screenshot.spec.ts +++ b/tests/page/page-screenshot.spec.ts @@ -840,3 +840,47 @@ it('should throw if screenshot size is too large', async ({ page, browserName, i expect(exception.message).toContain('Cannot take screenshot larger than 32767'); } }); + +it('page screenshot should capture css transform', async function({ page, browserName, isElectron }) { + it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/26447' }); + it.fixme(browserName === 'webkit'); + it.fixme(isElectron, 'Returns screenshot of a different size.'); + await page.setContent(` + +
+
+
+
+
+ `); + + await expect(page).toHaveScreenshot(); +}); diff --git a/tests/page/page-screenshot.spec.ts-snapshots/page-screenshot-should-capture-css-transform-1-chromium.png b/tests/page/page-screenshot.spec.ts-snapshots/page-screenshot-should-capture-css-transform-1-chromium.png new file mode 100644 index 0000000000..d29a2b4ab2 Binary files /dev/null and b/tests/page/page-screenshot.spec.ts-snapshots/page-screenshot-should-capture-css-transform-1-chromium.png differ diff --git a/tests/page/page-screenshot.spec.ts-snapshots/page-screenshot-should-capture-css-transform-1-firefox.png b/tests/page/page-screenshot.spec.ts-snapshots/page-screenshot-should-capture-css-transform-1-firefox.png new file mode 100644 index 0000000000..1010c4fd45 Binary files /dev/null and b/tests/page/page-screenshot.spec.ts-snapshots/page-screenshot-should-capture-css-transform-1-firefox.png differ