|
| 1 | +# Why Playwright? |
| 2 | + |
| 3 | +Playwright enables fast, reliable and capable automation across all modern browsers. This guide covers those key differentiators to help you decide on the right tool for your automated tests. |
| 4 | + |
| 5 | +<!-- GEN:toc-top-level --> |
| 6 | +- [Support for all browsers](#support-for-all-browsers) |
| 7 | +- [Fast and reliable execution](#fast-and-reliable-execution) |
| 8 | +- [Powerful automation capabilities](#powerful-automation-capabilities) |
| 9 | +- [Integrates with your workflow](#integrates-with-your-workflow) |
| 10 | +<!-- GEN:stop --> |
| 11 | + |
| 12 | +## Support for all browsers |
| 13 | +* **Test on Chromium, Firefox and WebKit**. Playwright has full API coverage for all modern browsers, including Google Chrome and Microsoft Edge (with [Chromium](https://www.chromium.org/)), Apple Safari (with [WebKit](https://webkit.org/)) and Mozilla Firefox. |
| 14 | + |
| 15 | +* **Cross-platform WebKit testing**. With Playwright, test how your app behaves in Apple Safari with WebKit builds for Windows, Linux and macOS. Test locally and on CI. |
| 16 | + |
| 17 | +* **Test for mobile**. Use [device emulation](emulation.md) to test your responsive web apps in mobile web browsers. |
| 18 | + |
| 19 | +* **Headless and headful**. Headless and headful automation is supported across all browsers and on all platforms. |
| 20 | + |
| 21 | +## Fast and reliable execution |
| 22 | +* **Auto-wait APIs**. Playwright interactions [auto-wait for elements](actionability.md) to be ready. This improves reliability and simplifies test authoring. |
| 23 | + |
| 24 | +* **Timeout-free automation**. Playwright receives browser signals, like network requests, page navigations and page load events to eliminate the need for sleep timeouts that cause flakiness. |
| 25 | + |
| 26 | +* **Lean parallelization with browser contexts**. Reuse a single browser instance for multiple parallelized, isolated execution environments with [browser contexts](core-concepts.md). |
| 27 | + |
| 28 | +* **Resilient element selectors**. Playwright can rely on user-facing strings, like text content and accessibility labels to [select elements](selectors.md). These strings are more resilient than selectors tightly-coupled to the DOM structure. |
| 29 | + |
| 30 | +## Powerful automation capabilities |
| 31 | +* **Multiple domains, pages and frames**. Playwright is an out-of-process automation driver that is not limited by the scope of in-page JavaScript execution and can automate scenarios with [multiple pages](multi-pages.md). |
| 32 | + |
| 33 | +* **Powerful network control**. Playwright introduces context-wide [network interception](network.md) to stub and mock network requests. |
| 34 | + |
| 35 | +* **Modern web features**. Playwright supports web components through [shadow-piercing selectors](selectors.md), [geolocation, permissions](emulation.md), web workers and other modern web APIs. |
| 36 | + |
| 37 | +* **Capabilities to cover all scenarios**. Support for [file downloads](network.md) and [uploads](input.md), native [input events](input.md), and even [dark mode](emulation.md). |
| 38 | + |
| 39 | +## Integrates with your workflow |
| 40 | +* **One-line installation**. Running `npm i playwright` auto-downloads browser dependencies for your team to be onboarded quickly. |
| 41 | + |
| 42 | +* **TypeScript support**. Playwright ships with built-in types for auto-completion and other benefits. |
| 43 | + |
| 44 | +* **Debugging tools**. Playwright integrates with the [editor debugger](debug.md) to |
| 45 | + |
| 46 | +* **Language bindings**. Playwright is also available in [Python](https://github.com/microsoft/playwright-python) and [C#](https://github.com/hardkoded/playwright-sharp). |
| 47 | + |
| 48 | +* **Deploy tests to CI**. First-party [Docker image](docker/README.md) and [GitHub Actions](https://github.com/microsoft/playwright-github-action) to deploy tests to [your preferred CI/CD provider](ci.md). |
0 commit comments