All Projects → microsoft → Playwright

microsoft / Playwright

Licence: apache-2.0
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

Programming Languages

typescript
32286 projects
C++
36643 projects - #6 most used programming language
shell
77523 projects
CSS
56736 projects
objective c
16641 projects - #2 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Playwright

mitm-play
Man in the middle using Playwright
Stars: ✭ 13 (-99.96%)
Mutual labels:  firefox, chromium, webkit, playwright
Qawolf
🐺 Create browser tests 10x faster
Stars: ✭ 2,912 (-90.76%)
Mutual labels:  firefox, webkit, e2e-testing, playwright
Playwright Python
Python version of the Playwright testing and automation library.
Stars: ✭ 5,583 (-82.28%)
Mutual labels:  firefox, chromium, webkit, playwright
playwright-demos
playwright for scrapping and UI testing / automate testing workflows
Stars: ✭ 65 (-99.79%)
Mutual labels:  chromium, webkit, playwright
Recorder
A browser extension that generates Cypress, Playwright and Puppeteer test scripts from your interactions 🖱 ⌨
Stars: ✭ 277 (-99.12%)
Mutual labels:  firefox, chromium, playwright
Playwright Go
Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.
Stars: ✭ 272 (-99.14%)
Mutual labels:  firefox, chromium, webkit
Playwright Sharp
.NET version of the Playwright testing and automation library.
Stars: ✭ 459 (-98.54%)
Mutual labels:  firefox, chromium, webkit
WebView4Delphi
WebView4Delphi is an open source project created by Salvador Díaz Fau to embed Chromium-based browsers in applications made with Delphi or Lazarus/FPC for Windows.
Stars: ✭ 157 (-99.5%)
Mutual labels:  chromium, webkit
Extension Create
Create modern cross-browser extensions with no build configuration.
Stars: ✭ 167 (-99.47%)
Mutual labels:  firefox, chromium
heroku-playwright-buildpack
Buildpack for running Playwright with Chromium and Firefox on Heroku.
Stars: ✭ 34 (-99.89%)
Mutual labels:  chromium, playwright
FiremacsWE
Firemacs as a Web Extension
Stars: ✭ 26 (-99.92%)
Mutual labels:  firefox, chromium
Interstellar
Cross-platform desktop apps in F# using web tech - https://www.nuget.org/packages/Interstellar.Core/
Stars: ✭ 32 (-99.9%)
Mutual labels:  chromium, webkit
crusher
Develop.Test. Ship.🦖 Open source e2 low-code web testing. Blazing fast alternative to Selenium, Cypress.
Stars: ✭ 148 (-99.53%)
Mutual labels:  chromium, playwright
Tomato Clock
Tomato Clock is a simple browser extension for managing your productivity.
Stars: ✭ 241 (-99.24%)
Mutual labels:  firefox, chromium
Melonjs
a fresh & lightweight javascript game engine
Stars: ✭ 3,721 (-88.19%)
Mutual labels:  firefox, webkit
Sponsorblock
Skip YouTube video sponsors (browser extension)
Stars: ✭ 3,627 (-88.49%)
Mutual labels:  firefox, chromium
Kdeconnect Chrome Extension
A browser extension to send pages and content from your browser to connected KDE Connect devices.
Stars: ✭ 124 (-99.61%)
Mutual labels:  firefox, chromium
Surfingkeys Conf
A SurfingKeys configuration which adds 130+ key mappings for 20+ sites & OmniBar search suggestions for 50+ sites
Stars: ✭ 137 (-99.57%)
Mutual labels:  firefox, chromium
Wpt
Test suites for Web platform specs — including WHATWG, W3C, and others
Stars: ✭ 3,573 (-88.66%)
Mutual labels:  firefox, webkit
Surfingkeys
Map your keys for web surfing, expand your browser with javascript and keyboard.
Stars: ✭ 3,787 (-87.98%)
Mutual labels:  firefox, chromium

🎭 Playwright

npm version Chromium version Firefox version WebKit version

Documentation | API reference

Playwright is a framework for Web Testing and Automation. It allows testing 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 99.0.4771.0
WebKit 15.4
Firefox 95.0

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

Usage

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.

Capabilities

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

Examples

Page screenshot

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

const playwright = require('playwright');

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

Mobile and geolocation

This snippet emulates Mobile Safari on a device at a given geolocation, navigates to maps.google.com, 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({
    ...iPhone11,
    locale: 'en-US',
    geolocation: { longitude: 12.492507, latitude: 41.889938 },
    permissions: ['geolocation']
  });
  const page = await context.newPage();
  await page.goto('https://maps.google.com');
  await page.click('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 example.com 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('https://www.example.com/');
  const dimensions = await page.evaluate(() => {
    return {
      width: document.documentElement.clientWidth,
      height: document.documentElement.clientHeight,
      deviceScaleFactor: window.devicePixelRatio
    }
  });
  console.log(dimensions);

  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
  await page.route('**', route => {
    console.log(route.request().url());
    route.continue();
  });

  await page.goto('http://todomvc.com');
  await browser.close();
})();

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].