playwright/docs/src/videos.md
2021-03-05 13:50:34 -08:00

2.2 KiB

id title
videos Videos

Playwright can record videos for all pages in a browser context. Videos are saved upon context closure, so make sure to await [method: BrowserContext.close].

const context = await browser.newContext({ recordVideo: { dir: 'videos/' } });
// Make sure to await close, so that videos are saved.
await context.close();
context = browser.newContext(new Browser.NewContextOptions().setRecordVideoDir(Paths.get("videos/")));
// Make sure to close, so that videos are saved.
context.close();
context = await browser.new_context(record_video_dir="videos/")
# Make sure to await close, so that videos are saved.
await context.close()
context = browser.new_context(record_video_dir="videos/")
# Make sure to close, so that videos are saved.
context.close()

You can also specify video size, it defaults to viewport size scaled down to fit 800x800.

const context = await browser.newContext({
  recordVideo: {
    dir: 'videos/',
    size: { width: 1024, height: 768 },
  }
});
BrowserContext context = browser.newContext(new Browser.NewContextOptions()
  .setRecordVideoDir(Paths.get("videos/"))
  .setRecordVideoSize(1024, 768));
context = await browser.new_context(
    record_video_dir="videos/",
    record_video_size={"width": 1024, "height": 768}
)
context = browser.new_context(
    record_video_dir="videos/",
    record_video_size={"width": 1024, "height": 768}
)

Saved video files will appear in the specified folder. They all have generated unique names. For the multi-page scenarios, you can access the video file associated with the page via the [method: Page.video].

const path = await page.video().path();
path = page.video().path();
path = await page.video.path()
path = page.video.path()

:::note Note that the video is only available after the page or browser context is closed. :::

API reference

  • [BrowserContext]
  • [method: Browser.newContext]
  • [method: Browser.newPage]
  • [method: BrowserContext.close]