2020-12-30 18:04:51 -08:00
|
|
|
<!-- THIS FILE IS NOW GENERATED -->
|
|
|
|
|
2020-02-14 16:54:14 -08:00
|
|
|
# Community Showcase
|
|
|
|
|
|
|
|
## Users
|
2020-12-30 18:04:51 -08:00
|
|
|
* [VS Code](https://github.com/microsoft/vscode): Playwright is used to run
|
|
|
|
cross-browser tests on their web builds
|
|
|
|
* [TypeScript](https://github.com/microsoft/TypeScript): Playwright is used
|
|
|
|
test typescript.js across browsers
|
|
|
|
* [Elastic APM JS agent](https://github.com/elastic/apm-agent-rum-js):
|
|
|
|
Playwright is used to run benchmark tests across browsers
|
|
|
|
* [Blockstack](https://github.com/blockstack/ux): Playwright is used to run
|
|
|
|
cross-browser UI tests
|
|
|
|
* [Instakittens React admin](https://github.com/fredericbonnet/instakittens-react-admin):
|
|
|
|
Playwright is used to run end-to-end test scenarios written with Cucumber
|
|
|
|
* [xterm.js](https://github.com/xtermjs/xterm.js): Playwright is used to run
|
|
|
|
cross-browser integration tests
|
|
|
|
* [Accessibility Insights for Web](https://github.com/microsoft/accessibility-insights-web):
|
|
|
|
Playwright is used with Jest and axe-core to run end-to-end functional and
|
|
|
|
accessibility tests of a WebExtension-based browser extension
|
2020-02-14 16:54:14 -08:00
|
|
|
|
|
|
|
## Tools
|
2020-12-30 18:04:51 -08:00
|
|
|
* [CodeceptJS](https://github.com/Codeception/CodeceptJS): Write
|
|
|
|
scenario-driven Playwright tests with synchronous code
|
|
|
|
* [dom-to-playwright](https://github.com/Xiphe/dom-to-playwright) to copy a
|
|
|
|
JSDOM snapshot into a Playwright page.
|
|
|
|
* [expected-condition-playwright](https://github.com/elaichenkov/expected-condition-playwright):
|
|
|
|
Supplies a set of common expected conditions that can wait for certain
|
|
|
|
states and conditions
|
|
|
|
* [Headless Testing](https://headlesstesting.com/support/start/playwright.html):
|
|
|
|
Run Playwright tests on browsers in the cloud
|
|
|
|
* [Lumberjack](https://github.com/JakePartusch/lumberjack): Automated
|
|
|
|
accessibility scanner to run checks on your entire website
|
|
|
|
* [mockiavelli](https://github.com/HLTech/mockiavelli) Request mocking library
|
|
|
|
for Playwright to test SPA in isolation from backend APIs.
|
|
|
|
* [Moon](https://github.com/aerokube/moon): Run Playwright tests in parallel
|
|
|
|
in Kubernetes cluster (free up to 4 parallel sessions)
|
|
|
|
* [playwright-test](https://github.com/hugomrdias/playwright-test) Run unit
|
|
|
|
tests and benchmarks in browsers with Node's seamless experience.
|
|
|
|
* [playwright-video](https://github.com/qawolf/playwright-video): Capture a
|
|
|
|
video while executing a Playwright script
|
|
|
|
* [QA Wolf](https://github.com/qawolf/qawolf): Record and create Playwright
|
|
|
|
tests and then run them in CI
|
|
|
|
* [Root Cause OSS](https://github.com/testimio/root-cause): Capture
|
|
|
|
screenshots on every step and display in a viewer with logs for easy
|
|
|
|
troubleshooting.
|
|
|
|
* [test-real-styles](https://github.com/Xiphe/test-real-styles): Utility to
|
|
|
|
test real styling of virtual DOM elements in a browser
|
|
|
|
* [Testim Playground](https://www.testim.io/playground/): Record Playwright UI
|
|
|
|
tests as code
|
|
|
|
* [Try Playwright](https://try.playwright.tech/): Interactive playground for
|
|
|
|
Playwright to run examples directly from your browser
|
|
|
|
* [Applitools](https://applitools.com): Add AI-powered visual assertions and
|
|
|
|
run your Playwright tests on all browser, device, and viewport combinations
|
|
|
|
in parallel, without requiring any setup.
|
2020-02-14 16:54:14 -08:00
|
|
|
|
|
|
|
## Frameworks
|
2020-12-30 18:04:51 -08:00
|
|
|
* [jest-playwright](https://github.com/mmarkelov/jest-playwright): Jest preset
|
|
|
|
to run Playwright tests with Jest
|
|
|
|
* [query-selector-shadow-dom](https://github.com/Georgegriff/query-selector-shadow-dom):
|
|
|
|
Custom selector engine to pierce shadow DOM roots
|
|
|
|
* [Playwright Sharp](https://github.com/kblok/playwright-sharp): Work in
|
|
|
|
progress port of Playwright to .NET
|
|
|
|
* [playwright-fluent](https://github.com/hdorgeval/playwright-fluent): Fluent
|
|
|
|
API around Playwright
|
|
|
|
* [robotframework-browser](https://robotframework-browser.org/) Robotframework
|
|
|
|
library that uses Playwright to achieve good development ergonomics.
|
2020-02-14 16:54:14 -08:00
|
|
|
|
|
|
|
## Examples
|
2020-12-30 18:04:51 -08:00
|
|
|
* [e2e Boilerplates](https://github.com/e2e-boilerplate?utf8=%E2%9C%93&q=playwright):
|
|
|
|
Project boilerplates for using Playwright with TypeScript, Cucumber, Jest,
|
|
|
|
and other libraries
|
|
|
|
* [react-app-playwright](https://github.com/KyleADay/react-app-playwright):
|
|
|
|
Using Playwright with a create-react-app project
|
|
|
|
* [playwright-react-typescript-jest-example](https://github.com/azemetre/playwright-react-typescript-jest-example):
|
|
|
|
Using Playwright + Jest with a custom webpack configuration for React +
|
|
|
|
Typescript project
|
|
|
|
* [playwright-mocha](https://github.com/roggerfe/playwright-mocha): Using
|
|
|
|
Playwright with Mocha and Chai
|
|
|
|
* [playwright-cljs](https://github.com/apeckham/playwright-cljs): Playwright
|
|
|
|
examples in ClojureScript
|
|
|
|
* [playwright-azure-functions](https://github.com/arjun27/playwright-azure-functions):
|
|
|
|
Playwright setup on Azure Functions
|
|
|
|
* [playwright-aws-lambda](https://github.com/austinkelleher/playwright-aws-lambda):
|
|
|
|
Playwright setup on AWS Lambda
|
|
|
|
* [playwright-jest-circus-allure](https://github.com/d-shch/playwright-jest-circus-allure):
|
|
|
|
Example how to use allure-report and jest-circus with playwright
|
|
|
|
* [Heroku Playwright Example](https://github.com/mxschmitt/heroku-playwright-example):
|
|
|
|
Example using Playwright on Heroku
|
2020-02-14 16:54:14 -08:00
|
|
|
|
2020-08-24 17:08:54 +02:00
|
|
|
## Guides
|
2020-12-30 18:04:51 -08:00
|
|
|
* [theheadless.dev](https://theheadless.dev): Practical guides and runnable
|
|
|
|
examples on Playwright (and Puppeteer)
|
2020-08-24 17:08:54 +02:00
|
|
|
|
2020-02-14 16:54:14 -08:00
|
|
|
## Contributing
|
|
|
|
|
|
|
|
Did we miss something in this list? Send us a PR!
|
2020-12-30 18:04:51 -08:00
|
|
|
[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"
|