PageSourceSearch

https://playwright.dev/docs/intro

html playwright.dev collected 2026-09-24 06:53:13 UTC 55,934 bytes, 72 lines download raw bytes

1<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-stable docs-doc-page docs-doc-id-intro" data-has-hydrated=false><head><meta charset=UTF-8><meta name=generator content="Docusaurus v3.10.1"><title data-rh=true>Installation | Playwright</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"/><meta data-rh=true name=twitter:card content=summary_large_image /><meta data-rh=true property=og:image content=https://repository-images.githubusercontent.com/221981891/8c5c6942-c91f-4df1-825f-4cf474056bd7 /><meta data-rh=true name=twitter:image content=https://repository-images.githubusercontent.com/221981891/8c5c6942-c91f-4df1-825f-4cf474056bd7 /><meta data-rh=true property=og:url content=https://playwright.dev/docs/intro /><meta data-rh=true property=og:locale content=en /><meta data-rh=true name=docusaurus_locale content=en /><meta data-rh=true name=docsearch:language content=en /><meta data-rh=true name=docusaurus_version content=stable /><meta data-rh=true name=docusaurus_tag content=docs-default-stable /><meta data-rh=true name=docsearch:version content=stable /><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-stable /><meta data-rh=true property=og:title content="Installation | Playwright"/><meta data-rh=true name=description content=Introduction /><meta data-rh=true property=og:description content=Introduction /><link data-rh=true rel=icon href=/img/playwright-logo.ico /><link data-rh=true rel=canonical href=https://playwright.dev/docs/intro /><link data-rh=true rel=alternate href=https://playwright.dev/docs/intro hreflang=en /><link data-rh=true rel=alternate href=https://playwright.dev/docs/intro hreflang=x-default /><link data-rh=true rel=preconnect href=https://K09ICMCV6X-dsn.algolia.net crossorigin=anonymous />
1<script data-rh=true type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://playwright.dev/docs/intro","name":"Installation","position":1}]}</script>
1<link rel=search type=application/opensearchdescription+xml title=Playwright href=/opensearch.xml>
1<script src=/js/redirection.js></script>
1<link rel=stylesheet href=/assets/css/styles.3714015c.css />
1<script src=/assets/js/runtime~main.f0d86e55.js defer></script>
1<script src=/assets/js/main.3a85c103.js defer></script>
1</head><body><svg style="display: none;"><defs>
2<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
3</defs></svg>
4<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme-e2a")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script>
4<div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_fXgn href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/playwright-logo.svg alt="Playwright logo" class="themedComponent_mlkZ themedComponent--light_NVdE"/><img src=/img/playwright-logo.svg alt="Playwright logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"/></div><b class="navbar__title text--truncate">Playwright</b></a><a aria-current=page class="navbar__item navbar__link navbar__link--active" href=/docs/intro>Docs</a><a class="navbar__item navbar__link" href=/mcp/introduction>MCP</a><a class="navbar__item navbar__link" href=/agent-cli/introduction>CLI</a><a class="navbar__item navbar__link" href=/docs/api/class-playwright>API</a><div class="navbar__item dropdown dropdown--hoverable"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>Node.js</a><ul class=dropdown__menu><li><a href=/docs/intro target=_self rel="noopener noreferrer" class="dropdown__link undefined dropdown__link--active" data-language-prefix=/>Node.js</a><li><a href=/python/docs/intro target=_self rel="noopener noreferrer" class=dropdown__link data-language-prefix=/python/>Python</a><li><a href=/java/docs/intro target=_self rel="noopener noreferrer" class=dropdown__link data-language-prefix=/java/>Java</a><li><a href=/dotnet/docs/intro target=_self rel="noopener noreferrer" class=dropdown__link data-language-prefix=/dotnet/>.NET</a></ul></div></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href=https://github.com/microsoft/playwright target=_blank rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><a href=https://aka.ms/playwright/discord target=_blank rel="noopener noreferrer" class="navbar__item navbar__link header-discord-link" aria-label="Discord server"></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 
41.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_Bca1><button type=button class="DocSearch DocSearch-Button" aria-label="Search (Meta+k)" aria-keyshortcuts=Meta+k><span class=DocSearch-Button-Container><svg width=20 height=20 class=DocSearch-Search-Icon viewBox="0 0 24 24" aria-hidden=true><circle cx=11 cy=11 r=8 stroke=currentColor fill=none stroke-width=1.4 /><path d="m21 21-4.3-4.3" stroke=currentColor fill=none stroke-linecap=round stroke-linejoin=round /></svg><span class=DocSearch-Button-Placeholder>Search</span></span><span class=DocSearch-Button-Keys></span></button></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class=docsWrapper_hBAB><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type=button></button><div class=docRoot_UBD9><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class=sidebarViewport_aRkj><div class=sidebar_njMd><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true href=/docs/intro><span title="Getting Started" class=categoryLinkLabel_W154>Getting Started</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/intro><span title=Installation class=linkLabel_WmDU>Installation</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/writing-tests><span title="Writing tests" class=linkLabel_WmDU>Writing tests</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/codegen-intro><span title="Generating tests" class=linkLabel_WmDU>Generating tests</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/running-tests><span title="Running and debugging tests" class=linkLabel_WmDU>Running and debugging tests</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/trace-viewer-intro><span title="Trace viewer" class=linkLabel_WmDU>Trace viewer</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/ci-intro><span title="Setting up CI" class=linkLabel_WmDU>Setting up CI</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/getting-started-vscode><span title="VS Code" class=linkLabel_WmDU>VS Code</span></a></ul><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/docs/release-notes><span title="Release notes" class=linkLabel_WmDU>Release notes</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/docs/canary-releases><span title="Canary releases" class=linkLabel_WmDU>Canary releases</span></a><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/docs/test-agents><span title="Playwright Test" class=categoryLinkLabel_W154>Playwright Test</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-agents><span title=Agents class=linkLabel_WmDU>Agents</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-annotations><span title=Annotations class=linkLabel_WmDU>Annotations</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-cli><span title="Command line" class=linkLabel_WmDU>Command line</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-configuration><span title=Configuration class=linkLabel_WmDU>Configuration</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-use-options><span title="Configuration (use)" class=linkLabel_WmDU>Configuration (use)</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/emulation><span title=Emulation class=linkLabel_WmDU>Emulation</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-fixtures><span title=Fixtures class=linkLabel_WmDU>Fixtures</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-global-setup-teardown><span title="Global setup and teardown" class=linkLabel_WmDU>Global setup and teardown</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-parallel><span title=Parallelism class=linkLabel_WmDU>Parallelism</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-parameterize><span title="Parameterize tests" class=linkLabel_WmDU>Parameterize tests</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-projects><span title=Projects class=linkLabel_WmDU>Projects</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-reporters><span title=Reporters class=linkLabel_WmDU>Reporters</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-retries><span title=Retries class=linkLabel_WmDU>Retries</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-sharding><span title=Sharding class=linkLabel_WmDU>Sharding</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-timeouts><span title=Timeouts class=linkLabel_WmDU>Timeouts</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-typescript><span title=TypeScript class=linkLabel_WmDU>TypeScript</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-ui-mode><span title="UI Mode" class=linkLabel_WmDU>UI Mode</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-webserver><span title="Web server" class=linkLabel_WmDU>Web server</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=true href=/docs/library><span title=Guides class=categoryLinkLabel_W154>Guides</span></a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/library><span title=Library class=linkLabel_WmDU>Library</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/accessibility-testing><span title="Accessibility testing" class=linkLabel_WmDU>Accessibility testing</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/input><span title=Actions class=linkLabel_WmDU>Actions</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-assertions><span title=Assertions class=linkLabel_WmDU>Assertions</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/api-testing><span title="API testing" class=linkLabel_WmDU>API testing</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/auth><span title=Authentication class=linkLabel_WmDU>Authentication</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/actionability><span title=Auto-waiting class=linkLabel_WmDU>Auto-waiting</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/best-practices><span title="Best Practices" class=linkLabel_WmDU>Best Practices</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/browsers><span title=Browsers class=linkLabel_WmDU>Browsers</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/chrome-extensions><span title="Chrome extensions" class=linkLabel_WmDU>Chrome extensions</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/clock><span title=Clock class=linkLabel_WmDU>Clock</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-components><span title="Component testing" class=linkLabel_WmDU>Component testing</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/debug><span title="Debugging Tests" class=linkLabel_WmDU>Debugging Tests</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/dialogs><span title=Dialogs class=linkLabel_WmDU>Dialogs</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/downloads><span title=Downloads class=linkLabel_WmDU>Downloads</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/evaluating><span title="Evaluating JavaScript" class=linkLabel_WmDU>Evaluating JavaScript</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/events><span title=Events class=linkLabel_WmDU>Events</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/extensibility><span title=Extensibility class=linkLabel_WmDU>Extensibility</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/frames><span title=Frames class=linkLabel_WmDU>Frames</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/handles><span title=Handles class=linkLabel_WmDU>Handles</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/browser-contexts><span title=Isolation class=linkLabel_WmDU>Isolation</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/locators><span title=Locators class=linkLabel_WmDU>Locators</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/mock><span title="Mock APIs" class=linkLabel_WmDU>Mock APIs</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/mock-browser-apis><span title="Mock browser APIs" class=linkLabel_WmDU>Mock browser APIs</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/navigations><span title=Navigations class=linkLabel_WmDU>Navigations</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/network><span title=Network class=linkLabel_WmDU>Network</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/other-locators><span title="Other locators" class=linkLabel_WmDU>Other locators</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/pages><span title=Pages class=linkLabel_WmDU>Pages</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/pom><span title="Page object models" class=linkLabel_WmDU>Page object models</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/screenshots><span title=Screenshots class=linkLabel_WmDU>Screenshots</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/service-workers><span title="Service Workers" class=linkLabel_WmDU>Service Workers</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/aria-snapshots><span title="Snapshot testing" class=linkLabel_WmDU>
4Snapshot testing</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/codegen><span title="Test generator" class=linkLabel_WmDU>Test generator</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/touch-events><span title="Touch events (legacy)" class=linkLabel_WmDU>Touch events (legacy)</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/trace-viewer><span title="Trace viewer" class=linkLabel_WmDU>Trace viewer</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/videos><span title=Videos class=linkLabel_WmDU>Videos</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/test-snapshots><span title="Visual comparisons" class=linkLabel_WmDU>Visual comparisons</span></a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/webview2><span title=WebView2 class=linkLabel_WmDU>WebView2</span></a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/protractor><span title=Migration class=categoryLinkLabel_W154>Migration</span></a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/docker><span title=Integrations class=categoryLinkLabel_W154>Integrations</span></a></div><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class=menu__link href=/docs/languages><span title="Supported languages" class=linkLabel_WmDU>Supported languages</span></a></ul></nav></div></div></aside><main class=docMainContainer_TBSr><div class="container padding-top--md padding-bottom--lg"><div class=row><div class="col docItemCol_VOVn"><div class=docItemContainer_Djhp><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label=Breadcrumbs><ul class=breadcrumbs><li class=breadcrumbs__item><a aria-label="Home page" class=breadcrumbs__link href=/><svg viewBox="0 0 24 24" class=breadcrumbHomeIcon_YNFT><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill=currentColor /></svg></a><li class=breadcrumbs__item><span class=breadcrumbs__link>Getting Started</span><li class="breadcrumbs__item breadcrumbs__item--active"><span class=breadcrumbs__link>Installation</span></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type=button class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Installation</h1></header><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=introduction>Introduction<a href=#introduction class=hash-link aria-label="Direct link to Introduction" title="Direct link to Introduction" translate=no>​</a></h2>
5<p>Playwright Test is an end-to-end test framework for modern web apps. It bundles test runner, assertions, isolation, parallelization and rich tooling. Playwright supports Chromium, WebKit and Firefox on Windows, Linux and macOS, locally or in CI, headless or headed, with native mobile emulation for Chrome (Android) and Mobile Safari.</p>
6<p><strong>You will learn</strong></p>
7<ul>
8<li class=""><a class="" href=/docs/intro#installing-playwright>How to install Playwright</a></li>
9<li class=""><a class="" href=/docs/intro#whats-installed>What's installed</a></li>
10<li class=""><a class="" href=/docs/intro#running-the-example-test>How to run the example test</a></li>
11<li class=""><a class="" href=/docs/intro#html-test-reports>How to open the HTML test report</a></li>
12</ul>
13<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=installing-playwright>Installing Playwright<a href=#installing-playwright class=hash-link aria-label="Direct link to Installing Playwright" title="Direct link to Installing Playwright" translate=no>​</a></h2>
14<p>Get started by installing Playwright using one of the following methods.</p>
15<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=using-npm-yarn-or-pnpm>Using npm, yarn or pnpm<a href=#using-npm-yarn-or-pnpm class=hash-link aria-label="Direct link to Using npm, yarn or pnpm" title="Direct link to Using npm, yarn or pnpm" translate=no>​</a></h3>
16<p>The command below either initializes a new project or adds Playwright to an existing one.</p>
17<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">npm<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">yarn<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">pnpm</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">npm</span><span class="token plain"> init playwright@latest</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> create playwright</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> create playwright</span><br/></div></code></pre></div></div></div></div></div>
18<p>When prompted, choose / confirm:</p>
19<ul>
20<li class="">TypeScript or JavaScript (default: TypeScript)</li>
21<li class="">Tests folder name (default: <code>tests</code>, or <code>e2e</code> if <code>tests</code> already exists)</li>
22<li class="">Add a GitHub Actions workflow (recommended for CI)</li>
23<li class="">Install Playwright browsers (default: yes)</li>
24</ul>
25<p>You can re-run the command later; it does not overwrite existing tests.</p>
26<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id=using-the-vs-code-extension>Using the VS Code Extension<a href=#using-the-vs-code-extension class=hash-link aria-label="Direct link to Using the VS Code Extension" title="Direct link to Using the VS Code Extension" translate=no>​</a></h3>
27<p>You can also create and run tests with the <a class="" href=/docs/getting-started-vscode>VS Code Extension</a>.</p>
28<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=whats-installed>What's Installed<a href=#whats-installed class=hash-link aria-label="Direct link to What's Installed" title="Direct link to What's Installed" translate=no>​</a></h2>
29<p>Playwright downloads required browser binaries and creates the scaffold below.</p>
30<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token plain">playwright.config.ts         </span><span class="token comment" style="color:rgb(106, 153, 85)"># Test configuration</span><span class="token plain"></span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain">package.json</span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain">package-lock.json            </span><span class="token comment" style="color:rgb(106, 153, 85)"># Or yarn.lock / pnpm-lock.yaml</span><span class="token plain"></span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain">tests/</span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain">  example.spec.ts            </span><span class="token comment" style="color:rgb(106, 153, 85)"># Minimal example test</span><br/></div></code></pre></div></div>
31<p>The <a class="" href=/docs/test-configuration>playwright.config</a> centralizes configuration: target browsers, timeouts, retries, projects, reporters and more. In existing projects dependencies are added to your current <code>package.json</code>.</p>
32<p><code>tests/</code> contains a minimal starter test.</p>
33<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=running-the-example-test>Running the Example Test<a href=#running-the-example-test class=hash-link aria-label="Direct link to Running the Example Test" title="Direct link to Running the Example Test" translate=no>​</a></h2>
34<p>By default tests run headless in parallel across Chromium, Firefox and WebKit (configurable in <a class="" href=/docs/test-configuration>playwright.config</a>). Output and aggregated results display in the terminal.</p>
35<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">npm<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">yarn<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">pnpm</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token plain">
35npx playwright </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">test</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> playwright </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">test</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">exec</span><span class="token plain"> playwright </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">test</span><br/></div></code></pre></div></div></div></div></div>
36<p><img decoding=async loading=lazy alt="tests running in command line" src=/assets/images/run-tests-cli-6e7e3119a14239c9021b406d7109dc44.png width=1724 height=658 class=img_ev3q /></p>
37<p>Tips:</p>
38<ul>
39<li class="">See the browser window: add <code>--headed</code>.</li>
40<li class="">Run a single project/browser: <code>--project=chromium</code>.</li>
41<li class="">Run one file: <code>npx playwright test tests/example.spec.ts</code>.</li>
42<li class="">Open testing UI: <code>--ui</code>.</li>
43</ul>
44<p>See <a class="" href=/docs/running-tests>Running Tests</a> for details on filtering, headed mode, sharding and retries.</p>
45<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=html-test-reports>HTML Test Reports<a href=#html-test-reports class=hash-link aria-label="Direct link to HTML Test Reports" title="Direct link to HTML Test Reports" translate=no>​</a></h2>
46<p>After a test run, the <a class="" href=/docs/test-reporters#html-reporter>HTML Reporter</a> provides a dashboard filterable by the browser, passed, failed, skipped, flaky and more. Click a test to inspect errors, attachments and steps. It auto-opens only when failures occur; open manually with the command below.</p>
47<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">npm<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">yarn<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">pnpm</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token plain">
47npx playwright show-report</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> playwright show-report</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">exec</span><span class="token plain">
47 playwright show-report</span><br/></div></code></pre></div></div></div></div></div>
48<p><img decoding=async loading=lazy alt="HTML Report" src=/assets/images/html-report-basic-8a88e44830660bfd1da1d17a7241f035.png width=4032 height=2244 class=img_ev3q /></p>
49<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=running-the-example-test-in-ui-mode>Running the Example Test in UI Mode<a href=#running-the-example-test-in-ui-mode class=hash-link aria-label="Direct link to Running the Example Test in UI Mode" title="Direct link to Running the Example Test in UI Mode" translate=no>​</a></h2>
50<p>Run tests with <a class="" href=/docs/test-ui-mode>UI Mode</a> for watch mode, live step view, time travel debugging and more.</p>
51<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">npm<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">yarn<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">pnpm</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token plain">npx playwright </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">test</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--ui</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> playwright </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">test</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--ui</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">exec</span><span class="token plain"> playwright </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">test</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--ui</span><br/></div></code></pre></div></div></div></div></div>
52<p><img decoding=async loading=lazy alt="UI Mode" src=/assets/images/ui-mode-1958baf0398aef5e9c9b5c68c5d56f2d.png width=3598 height=2184 class=img_ev3q /></p>
53<p>See the <a class="" href=/docs/test-ui-mode>detailed guide on UI Mode</a> for watch filters, step details and trace integration.</p>
54<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=updating-playwright>Updating Playwright<a href=#updating-playwright class=hash-link aria-label="Direct link to Updating Playwright" title="Direct link to Updating Playwright" translate=no>​</a></h2>
55<p>Update Playwright and download new browser binaries and their dependencies:</p>
56<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">npm<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">yarn<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">pnpm</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">npm</span><span class="token plain"> </span><span class="token function" style="color:rgb(220, 220, 170)">install</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">-D</span><span class="token plain"> @playwright/test@latest</span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain">
56npx playwright </span><span class="token function" style="color:rgb(220, 220, 170)">install</span><span class="token plain"> --with-deps</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> </span><span class="token function" style="color:rgb(220, 220, 170)">add</span><span class="token plain"> </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--dev</span><span class="token plain"> @playwright/test@latest</span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain"></span><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> playwright </span><span class="token function" style="color:rgb(220, 220, 170)">install</span><span class="token plain"> --with-deps</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> </span><span class="token function" style="color:rgb(220, 220, 170)">install</span><span class="token plain"> --save-dev @playwright/test@latest</span><br/></div><div class=token-line style=color:#D4D4D4><span class="token plain"></span><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">exec</span><span class="token plain"> playwright </span><span class="token function" style="color:rgb(220, 220, 170)">install</span><span class="token plain"> --with-deps</span><br/></div></code></pre></div></div></div></div></div>
57<p>Check your installed version:</p>
58<div class="theme-tabs-container tabs-container tabList__CuJ"><ul role=tablist aria-orientation=horizontal class=tabs><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_LNqP tabs__item--active">npm<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">yarn<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_LNqP">pnpm</ul><div class=margin-top--md><div role=tabpanel class=tabItem_Ymn6><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token plain">npx playwright </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--version</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">yarn</span><span class="token plain"> playwright </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--version</span><br/></div></code></pre></div></div></div><div role=tabpanel class=tabItem_Ymn6 hidden><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style=--prism-color:#D4D4D4;--prism-background-color:#212121><div class=codeBlockContent_QJqH><pre tabindex=0 class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style=color:#D4D4D4;background-color:#212121><code class=codeBlockLines_e6Vv><div class=token-line style=color:#D4D4D4><span class="token function" style="color:rgb(220, 220, 170)">pnpm</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(78, 201, 176)">exec</span><span class="token plain"> playwright </span><span class="token parameter variable" style="color:rgb(156, 220, 254)">--version</span><br/></div></code></pre></div></div></div></div></div>
59<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=system-requirements>System requirements<a href=#system-requirements class=hash-link aria-label="Direct link to System requirements" title="Direct link to System requirements" translate=no>​</a></h2>
60<ul>
61<li class="">Node.js: latest 22.x, 24.x or 26.x.</li>
62<li class="">Windows 11+, Windows Server 2019+ or Windows Subsystem for Linux (WSL).</li>
63<li class="">macOS 14 (Sonoma) or later.</li>
64<li class="">Debian 12 / 13, Ubuntu 22.04 / 24.04 / 26.04 (x86-64 or arm64).</li>
65</ul>
66<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id=whats-next>What's next<a href=#whats-next class=hash-link aria-label="Direct link to What's next" title="Direct link to What's next" translate=no>​</a></h2>
67<ul>
68<li class=""><a class="" href=/docs/writing-tests>Write tests using web-first assertions, fixtures and locators</a></li>
69<li class=""><a class="" href=/docs/running-tests>Run single or multiple tests; headed mode</a></li>
70<li class=""><a class="" href=/docs/codegen-intro>Generate tests with Codegen</a></li>
71<li class=""><a class="" href=/docs/trace-viewer-intro>View a trace of your tests</a></li>
72</ul></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--next" href=/docs/writing-tests><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Writing tests</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href=#introduction class="table-of-contents__link toc-highlight">Introduction</a><li><a href=#installing-playwright class="table-of-contents__link toc-highlight">Installing Playwright</a><ul><li><a href=#using-npm-yarn-or-pnpm class="table-of-contents__link toc-highlight">Using npm, yarn or pnpm</a><li><a href=#using-the-vs-code-extension class="table-of-contents__link toc-highlight">Using the VS Code Extension</a></ul><li><a href=#whats-installed class="table-of-contents__link toc-highlight">What's Installed</a><li><a href=#running-the-example-test class="table-of-contents__link toc-highlight">Running the Example Test</a><li><a href=#html-test-reports class="table-of-contents__link toc-highlight">HTML Test Reports</a><li><a href=#running-the-example-test-in-ui-mode class="table-of-contents__link toc-highlight">Running the Example Test in UI Mode</a><li><a href=#updating-playwright class="table-of-contents__link toc-highlight">Updating Playwright</a><li><a href=#system-requirements class="table-of-contents__link toc-highlight">System requirements</a><li><a href=#whats-next class="table-of-contents__link toc-highlight">What's next</a></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links">
72<div class="theme-layout-footer-column col footer__col"><div class=footer__title>Learn</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/intro>Getting started</a><li class=footer__item><a href=https://learn.microsoft.com/en-us/training/modules/build-with-playwright/ target=_blank rel="noopener noreferrer" class=footer__link-item>Playwright Training<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a class=footer__link-item href=/community/learn-videos>Learn Videos</a><li class=footer__item><a class=footer__link-item href=/community/feature-videos>Feature Videos</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Community</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://stackoverflow.com/questions/tagged/playwright target=_blank rel="noopener noreferrer" class=footer__link-item>Stack Overflow<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://aka.ms/playwright/discord target=_blank rel="noopener noreferrer" class=footer__link-item>Discord<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://x.com/playwrightweb target=_blank rel="noopener noreferrer" class=footer__link-item>X<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.linkedin.com/company/playwrightweb target=_blank rel="noopener noreferrer" class=footer__link-item>LinkedIn<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://github.com/microsoft/playwright target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://www.youtube.com/channel/UC46Zj8pDH5tDosqm1gd7WTg target=_blank rel="noopener noreferrer" class=footer__link-item>YouTube<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a href=https://dev.to/playwright target=_blank rel="noopener noreferrer" class=footer__link-item>Blog<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a><li class=footer__item><a class=footer__link-item href=/community/ambassadors>Ambassadors</a><li class=footer__item><a href="https://go.microsoft.com/fwlink/?LinkId=521839" target=_blank rel="noopener noreferrer" class=footer__link-item>Microsoft Privacy Statement<svg width=13.5 height=13.5 aria-label="(opens in new tab)" class=iconExternalLink_nPIU><use href=#theme-svg-external-link /></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=footer__copyright>Copyright © 2026 Microsoft</div></div></div></footer></div></body>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.