2020-04-24 12:19:31 -07:00
# Documentation
2020-07-31 11:58:12 -07:00
### Capabilities
Playwright is a library to automate [Chromium ](https://www.chromium.org/Home ), [Firefox ](https://www.mozilla.org/en-US/firefox/new/ ) and [WebKit ](https://webkit.org/ ) with a single API. Playwright is built to enable cross-browser web automation that is **ever-green** , **capable** , **reliable** and **fast** .
* Ever-green browser engines
* Headless execution
* Scenarios that span multiple pages, domains and iframes
* Auto-wait for elements to be ready before executing actions (like click, fill)
* Reliable signals instead of timeouts (like network response, popup, navigation)
* 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
2020-04-19 18:47:36 -07:00
### Table of contents
2020-04-24 12:19:31 -07:00
1. [Getting Started ](./intro.md )
2020-05-03 14:22:07 -07:00
- [Installation ](./intro.md#installation )
- [Usage ](./intro.md#usage )
- [First script ](./intro.md#first-script )
- [System requirements ](./intro.md#system-requirements )
- [Installation parameters ](./installation.md )
2020-04-24 12:19:31 -07:00
1. [Core Concepts ](./core-concepts.md )
2020-05-03 11:23:19 -07:00
- [Overview ](./core-concepts.md# )
2020-04-19 18:47:36 -07:00
- [Browser ](./core-concepts.md#browser )
- [Browser contexts ](./core-concepts.md#browser-contexts )
- [Pages and frames ](./core-concepts.md#pages-and-frames )
- [Selectors ](./core-concepts.md#selectors )
- [Auto-waiting ](./core-concepts.md#auto-waiting )
2020-06-22 16:53:56 -07:00
- [Execution contexts: Node.js and Browser ](./core-concepts.md#execution-contexts-nodejs-and-browser )
2020-04-19 18:47:36 -07:00
- [Object & element handles ](./core-concepts.md#object--element-handles )
1. [Input ](./input.md )
- [Text input ](./input.md#text-input )
- [Checkboxes ](./input.md#checkboxes )
- [Select options ](./input.md#select-options )
- [Mouse click ](./input.md#mouse-click )
- [Type characters ](./input.md#type-characters )
- [Keys and shortcuts ](./input.md#keys-and-shortcuts )
- [Upload files ](./input.md#upload-files )
- [Focus element ](./input.md#focus-element )
2020-04-19 19:42:40 -07:00
1. [Emulation ](./emulation.md )
2020-07-13 15:47:13 -07:00
- [Devices ](./emulation.md#devices )
2020-05-03 11:23:19 -07:00
- [Overview ](./emulation.md# )
2020-04-19 19:42:40 -07:00
- [User agent ](./emulation.md#user-agent )
2020-07-13 15:47:13 -07:00
- [Viewport ](./emulation.md#viewport )
2020-04-19 19:42:40 -07:00
- [Locale & Timezone ](./emulation.md#locale--timezone )
- [Permissions ](./emulation.md#permissions )
- [Geolocation ](./emulation.md#geolocation )
2020-07-13 15:47:13 -07:00
- [Color scheme and media ](./emulation.md#color-scheme-and-media )
2020-04-19 19:42:40 -07:00
1. [Network ](./network.md )
2020-05-03 11:23:19 -07:00
- [Overview ](./network.md# )
2020-04-19 19:42:40 -07:00
- [HTTP Authentication ](./network.md#http-authentication )
- [Handle file downloads ](./network.md#handle-file-downloads )
- [Network events ](./network.md#network-events )
- [Handle requests ](./network.md#handle-requests )
- [Modify requests ](./network.md#modify-requests )
- [Abort requests ](./network.md#abort-requests )
2020-06-22 16:53:56 -07:00
1. [Assertions ](./assertions.md )
- [Common patterns ](./assertions.md#common-patterns )
- [Element Handles ](./assertions.md#element-handles )
- [Custom assertions ](./assertions.md#custom-assertions )
2020-07-08 08:59:58 -07:00
1. [Debugging tools ](./debug.md )
- [VS Code debugger ](./debug.md#visual-studio-code-debugger )
- [Browser developer tools ](./debug.md#browser-developer-tools )
- [Debug mode ](./debug.md#run-in-debug-mode )
2020-06-22 16:53:56 -07:00
1. [Verification ](./verification.md )
- [Screenshots ](./verification.md#screenshots )
- [Console logs ](./verification.md#console-logs )
- [Page errors ](./verification.md#page-errors )
2020-04-20 17:17:10 -07:00
- [Page events ](./verification.md#page-events )
2020-04-24 12:19:31 -07:00
1. [Navigation and Loading ](./loading.md )
2020-05-03 11:23:19 -07:00
- [Overview ](./loading.md# )
2020-04-20 14:04:49 -07:00
- [Common scenarios ](./loading.md#common-scenarios )
- [Loading a popup ](./loading.md#loading-a-popup )
- [Client-side redirects ](./loading.md#unusual-client-side-redirects )
- [Navigation after a timeout ](./loading.md#click-triggers-navigation-after-a-timeout )
2020-06-29 15:46:33 -07:00
1. [Multi-page scenarios ](./multi-pages.md )
- [Multiple contexts ](./multi-pages.md#multiple-contexts )
- [Multiple pages ](./multi-pages.md#multiple-pages )
- [Handling new pages ](./multi-pages.md#handling-new-pages )
- [Handling popups ](./multi-pages.md#handling-popups )
2020-06-22 16:53:56 -07:00
1. [Test runners ](./test-runners.md )
- [Jest / Jasmine ](./test-runners.md#jest--jasmine )
- [AVA ](./test-runners.md#ava )
- [Mocha ](./test-runners.md#mocha )
2020-04-24 12:19:31 -07:00
1. [Continuous Integration ](./ci.md )
2020-04-20 10:38:25 -07:00
- [Docker ](./ci.md#docker )
- [GitHub Actions ](./ci.md#github-actions )
- [Azure Pipelines ](./ci.md#azure-pipelines )
- [Travis CI ](./ci.md#travis-ci )
- [CircleCI ](./ci.md#circleci )
2020-04-24 12:19:31 -07:00
- [Troubleshooting ](./troubleshooting.md )
1. [Selector engines ](./selectors.md )
2020-06-22 16:53:56 -07:00
1. [Actionability ](./actionability.md )
2020-04-20 10:38:25 -07:00
1. [Extensibility ](./extensibility.md )
- [Custom selector engines ](./extensibility.md#custom-selector-engines )
2020-07-31 11:58:12 -07:00
1. [API Reference ](./api.md )