8.9 KiB
Community Showcase
Users
- VS Code: Playwright is used to run cross-browser tests on their web builds
- TypeScript: Playwright is used test typescript.js across browsers
- Elastic APM JS agent: Playwright is used to run benchmark tests across browsers
- Blockstack: Playwright is used to run cross-browser UI tests
- Instakittens React admin: Playwright is used to run end-to-end test scenarios written with Cucumber
- xterm.js: Playwright is used to run cross-browser integration tests
- Accessibility Insights for Web: Playwright is used with Jest and axe-core to run end-to-end functional and accessibility tests of a WebExtension-based browser extension
Tools
- CodeceptJS: Write scenario-driven Playwright tests with synchronous code
- dom-to-playwright to copy a JSDOM snapshot into a Playwright page.
- expected-condition-playwright: Supplies a set of common expected conditions that can wait for certain states and conditions
- Headless Testing: Run Playwright tests on browsers in the cloud
- Lumberjack: Automated accessibility scanner to run checks on your entire website
- mockiavelli Request mocking library for Playwright to test SPA in isolation from backend APIs.
- Moon: Run Playwright tests in parallel in Kubernetes cluster (free up to 4 parallel sessions)
- playwright-test Run unit tests and benchmarks in browsers with Node's seamless experience.
- playwright-video: Capture a video while executing a Playwright script
- QA Wolf: Record and create Playwright tests and then run them in CI
- Root Cause OSS: Capture screenshots on every step and display in a viewer with logs for easy troubleshooting.
- test-real-styles: Utility to test real styling of virtual DOM elements in a browser
- Testim Playground: Record Playwright UI tests as code
- Try Playwright: Interactive playground for Playwright to run examples directly from your browser
- Applitools: Add AI-powered visual assertions and run your Playwright tests on all browser, device, and viewport combinations in parallel, without requiring any setup.
Frameworks
- jest-playwright: Jest preset to run Playwright tests with Jest
- query-selector-shadow-dom: Custom selector engine to pierce shadow DOM roots
- Playwright Sharp: Work in progress port of Playwright to .NET
- playwright-fluent: Fluent API around Playwright
- robotframework-browser Robotframework library that uses Playwright to achieve good development ergonomics.
Examples
- e2e Boilerplates: Project boilerplates for using Playwright with TypeScript, Cucumber, Jest, and other libraries
- react-app-playwright: Using Playwright with a create-react-app project
- playwright-react-typescript-jest-example: Using Playwright + Jest with a custom webpack configuration for React + Typescript project
- playwright-mocha: Using Playwright with Mocha and Chai
- playwright-cljs: Playwright examples in ClojureScript
- playwright-azure-functions: Playwright setup on Azure Functions
- playwright-aws-lambda: Playwright setup on AWS Lambda
- playwright-jest-circus-allure: Example how to use allure-report and jest-circus with playwright
- Heroku Playwright Example: Example using Playwright on Heroku
Guides
- theheadless.dev: Practical guides and runnable examples on Playwright (and Puppeteer)
Contributing
Did we miss something in this list? Send us a PR! [Playwright]: api.md#class-playwright "Playwright" [Browser]: api.md#class-browser "Browser" [BrowserContext]: api.md#class-browsercontext "BrowserContext" [Page]: api.md#class-page "Page" [Frame]: api.md#class-frame "Frame" [ElementHandle]: api.md#class-elementhandle "ElementHandle" [JSHandle]: api.md#class-jshandle "JSHandle" [ConsoleMessage]: api.md#class-consolemessage "ConsoleMessage" [Dialog]: api.md#class-dialog "Dialog" [Download]: api.md#class-download "Download" [Video]: api.md#class-video "Video" [FileChooser]: api.md#class-filechooser "FileChooser" [Keyboard]: api.md#class-keyboard "Keyboard" [Mouse]: api.md#class-mouse "Mouse" [Touchscreen]: api.md#class-touchscreen "Touchscreen" [Request]: api.md#class-request "Request" [Response]: api.md#class-response "Response" [Selectors]: api.md#class-selectors "Selectors" [Route]: api.md#class-route "Route" [WebSocket]: api.md#class-websocket "WebSocket" [TimeoutError]: api.md#class-timeouterror "TimeoutError" [Accessibility]: api.md#class-accessibility "Accessibility" [Worker]: api.md#class-worker "Worker" [BrowserServer]: api.md#class-browserserver "BrowserServer" [BrowserType]: api.md#class-browsertype "BrowserType" [Logger]: api.md#class-logger "Logger" [ChromiumBrowser]: api.md#class-chromiumbrowser "ChromiumBrowser" [ChromiumBrowserContext]: api.md#class-chromiumbrowsercontext "ChromiumBrowserContext" [ChromiumCoverage]: api.md#class-chromiumcoverage "ChromiumCoverage" [CDPSession]: api.md#class-cdpsession "CDPSession" [FirefoxBrowser]: api.md#class-firefoxbrowser "FirefoxBrowser" [WebKitBrowser]: api.md#class-webkitbrowser "WebKitBrowser" [Array]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array "Array" [Buffer]: https://nodejs.org/api/buffer.html#buffer_class_buffer "Buffer" [ChildProcess]: https://nodejs.org/api/child_process.html "ChildProcess" [Element]: https://developer.mozilla.org/en-US/docs/Web/API/element "Element" [Error]: https://nodejs.org/api/errors.html#errors_class_error "Error" [EvaluationArgument]: #evaluationargument "Evaluation Argument" [Map]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map "Map" [Object]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object "Object" [Promise]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise "Promise" [RegExp]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp "RegExp" [Serializable]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#Description "Serializable" [UIEvent.detail]: https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail "UIEvent.detail" [URL]: https://nodejs.org/api/url.html "URL" [USKeyboardLayout]: ../src/usKeyboardLayout.ts "USKeyboardLayout" [UnixTime]: https://en.wikipedia.org/wiki/Unix_time "Unix Time" [boolean]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type "Boolean" [function]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function "Function" [iterator]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols "Iterator" [null]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null "null" [number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type "Number" [origin]: https://developer.mozilla.org/en-US/docs/Glossary/Origin "Origin" [selector]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors "selector" [Readable]: https://nodejs.org/api/stream.html#stream_class_stream_readable "Readable" [string]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type "string" [xpath]: https://developer.mozilla.org/en-US/docs/Web/XPath "xpath"