diff --git a/tests/screenshot.spec.ts b/tests/screenshot.spec.ts index 713be2a217..a75d18f0dd 100644 --- a/tests/screenshot.spec.ts +++ b/tests/screenshot.spec.ts @@ -119,7 +119,7 @@ browserTest.describe('page screenshot', () => { }); }); -browserTest.describe('element sceenshot', () => { +browserTest.describe('element screenshot', () => { browserTest.skip(({ browserName, headless }) => browserName === 'firefox' && !headless); browserTest('element screenshot should work with a mobile viewport', async ({ browser, server, browserName }) => { @@ -265,4 +265,23 @@ browserTest.describe('element sceenshot', () => { await verifyViewport(page, 350, 360); await context.close(); }); + + browserTest('should work if the main resource hangs', async ({ browser, browserName, mode, server }) => { + browserTest.skip(mode !== 'default'); + browserTest.fixme(browserName === 'chromium', 'https://github.com/microsoft/playwright/issues/9757'); + const page = await browser.newPage(); + server.setRoute('/slow', (req, res) => { + res.writeHead(200, { + 'content-length': 4096, + 'content-type': 'text/html', + }); + }); + try { + await page.goto(server.PREFIX + '/slow', { timeout: 1000 }).catch(() => {}); + const screenshot = await page.screenshot(); + expect(screenshot).toMatchSnapshot('hanging-main-resource.png'); + } finally { + await page.close(); + } + }); }); diff --git a/tests/screenshot.spec.ts-snapshots/hanging-main-resource-firefox.png b/tests/screenshot.spec.ts-snapshots/hanging-main-resource-firefox.png new file mode 100644 index 0000000000..f526d52776 Binary files /dev/null and b/tests/screenshot.spec.ts-snapshots/hanging-main-resource-firefox.png differ diff --git a/tests/screenshot.spec.ts-snapshots/hanging-main-resource-webkit.png b/tests/screenshot.spec.ts-snapshots/hanging-main-resource-webkit.png new file mode 100644 index 0000000000..014224c018 Binary files /dev/null and b/tests/screenshot.spec.ts-snapshots/hanging-main-resource-webkit.png differ