Neopolitan Pizza Maker

    TypeScript icon, indicating that this package has built-in type declarations

    1.4.0 • Public • Published

    🎭 Playwright

    npm version Join Slack Chromium version Firefox version WebKit version

    Documentation | API reference

    Playwright is a Node.js library to automate Chromium, Firefox and WebKit with a single API. Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast.

    Linux macOS Windows
    Chromium 86.0.4238.0
    WebKit 14.0
    Firefox 80.0b8

    Headless execution is supported for all the browsers on all platforms. Check out system requirements for details.


    npm i -D playwright

    This installs Playwright and browser binaries for Chromium, Firefox and WebKit. Once installed, you can require Playwright in a Node.js script and automate web browser interactions.


    Playwright is built to automate the broad and growing set of web browser capabilities used by Single Page Apps and Progressive Web Apps.

    • Scenarios that span multiple page, domains and iframes
    • Auto-wait for elements to be ready before executing actions (like click, fill)
    • Intercept network activity for stubbing and mocking network requests
    • Emulate mobile devices, geolocation, permissions
    • Support for web components via shadow-piercing selectors
    • Native input events for mouse and keyboard
    • Upload and download files


    Page screenshot

    This code snippet navigates to in Chromium, Firefox and WebKit, and saves 3 screenshots.

    const playwright = require('playwright');
    (async () => {
      for (const browserType of ['chromium', 'firefox', 'webkit']) {
        const browser = await playwright[browserType].launch();
        const context = await browser.newContext();
        const page = await context.newPage();
        await page.goto('');
        await page.screenshot({ path: `example-${browserType}.png` });
        await browser.close();

    Mobile and geolocation

    This snippet emulates Mobile Safari on a device at a given geolocation, navigates to, performs action and takes a screenshot.

    const { webkit, devices } = require('playwright');
    const iPhone11 = devices['iPhone 11 Pro'];
    (async () => {
      const browser = await webkit.launch();
      const context = await browser.newContext({
        locale: 'en-US',
        geolocation: { longitude: 12.492507, latitude: 41.889938 },
        permissions: ['geolocation']
      const page = await context.newPage();
      await page.goto('');
      await'text="Your location"');
      await page.waitForRequest(/.*preview\/pwa/);
      await page.screenshot({ path: 'colosseum-iphone.png' });
      await browser.close();

    Evaluate in browser context

    This code snippet navigates to in Firefox, and executes a script in the page context.

    const { firefox } = require('playwright');
    (async () => {
      const browser = await firefox.launch();
      const context = await browser.newContext();
      const page = await context.newPage();
      await page.goto('');
      const dimensions = await page.evaluate(() => {
        return {
          width: document.documentElement.clientWidth,
          height: document.documentElement.clientHeight,
          deviceScaleFactor: window.devicePixelRatio
      await browser.close();

    Intercept network requests

    This code snippet sets up request routing for a WebKit page to log all network requests.

    const { webkit } = require('playwright');
    (async () => {
      const browser = await webkit.launch();
      const context = await browser.newContext();
      const page = await context.newPage();
      // Log and continue all network requests
      page.route('**', route => {
      await page.goto('');
      await browser.close();





    npm i playwright@1.4.0





    Unpacked Size

    12.3 MB

    Total Files


    Last publish


    • aslushnikov
    • pavelfeldman
    • dgozman
    • yurys