chore: pdf generation now works in headed mode too (#33879)

This commit is contained in:
Yury Semikhatsky 2024-12-05 17:53:31 -08:00 committed by GitHub
parent 993546c1bc
commit 733f9a2926
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 4 additions and 12 deletions

View file

@ -2762,10 +2762,6 @@ This method requires Playwright to be started in a headed mode, with a falsy [`o
Returns the PDF buffer. Returns the PDF buffer.
:::note
Generating a pdf is currently only supported in Chromium headless.
:::
`page.pdf()` generates a pdf of the page with `print` css media. To generate a pdf with `screen` media, call `page.pdf()` generates a pdf of the page with `print` css media. To generate a pdf with `screen` media, call
[`method: Page.emulateMedia`] before calling `page.pdf()`: [`method: Page.emulateMedia`] before calling `page.pdf()`:

View file

@ -3609,8 +3609,6 @@ export interface Page {
/** /**
* Returns the PDF buffer. * Returns the PDF buffer.
* *
* **NOTE** Generating a pdf is currently only supported in Chromium headless.
*
* `page.pdf()` generates a pdf of the page with `print` css media. To generate a pdf with `screen` media, call * `page.pdf()` generates a pdf of the page with `print` css media. To generate a pdf with `screen` media, call
* [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) before calling * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) before calling
* `page.pdf()`: * `page.pdf()`:

View file

@ -17,9 +17,8 @@
import { browserTest as it, expect } from '../config/browserTest'; import { browserTest as it, expect } from '../config/browserTest';
import fs from 'fs'; import fs from 'fs';
it('should be able to save file', async ({ contextFactory, headless, browserName }, testInfo) => { it('should be able to save file', async ({ contextFactory, browserName }, testInfo) => {
it.skip(!headless || browserName !== 'chromium', 'Printing to pdf is currently only supported in headless chromium.'); it.skip(browserName !== 'chromium', 'Printing to pdf is currently only supported in chromium.');
const context = await contextFactory(); const context = await contextFactory();
const page = await context.newPage(); const page = await context.newPage();
const outputFile = testInfo.outputPath('output.pdf'); const outputFile = testInfo.outputPath('output.pdf');
@ -27,9 +26,8 @@ it('should be able to save file', async ({ contextFactory, headless, browserName
expect(fs.readFileSync(outputFile).byteLength).toBeGreaterThan(0); expect(fs.readFileSync(outputFile).byteLength).toBeGreaterThan(0);
}); });
it('should be able to generate outline', async ({ contextFactory, server, headless, browserName }, testInfo) => { it('should be able to generate outline', async ({ contextFactory, server, browserName }, testInfo) => {
it.skip(!headless || browserName !== 'chromium', 'Printing to pdf is currently only supported in headless chromium.'); it.skip(browserName !== 'chromium', 'Printing to pdf is currently only supported in chromium.');
// const context = await contextFactory();
const context = await contextFactory({ const context = await contextFactory({
baseURL: server.PREFIX, baseURL: server.PREFIX,
}); });