1- # Session Management
1+ # Browser Session Management
22
33Run multiple isolated browser sessions concurrently with state persistence.
44
5- ## Named Sessions
5+ ## Named Browser Sessions
66
7- Use ` --session ` flag to isolate browser contexts:
7+ Use ` -b ` flag to isolate browser contexts:
88
99``` bash
10- # Session 1: Authentication flow
11- playwright-cli --session =auth open https://app.example.com/login
10+ # Browser 1: Authentication flow
11+ playwright-cli -s =auth open https://app.example.com/login
1212
13- # Session 2: Public browsing (separate cookies, storage)
14- playwright-cli --session =public open https://example.com
13+ # Browser 2: Public browsing (separate cookies, storage)
14+ playwright-cli -s =public open https://example.com
1515
16- # Commands are isolated by session
17- playwright-cli --session =auth fill e1 " user@example.com"
18- playwright-cli --session =public snapshot
16+ # Commands are isolated by browser session
17+ playwright-cli -s =auth fill e1 " user@example.com"
18+ playwright-cli -s =public snapshot
1919```
2020
21- ## Session Isolation Properties
21+ ## Browser Session Isolation Properties
2222
23- Each session has independent:
23+ Each browser session has independent:
2424- Cookies
2525- LocalStorage / SessionStorage
2626- IndexedDB
2727- Cache
2828- Browsing history
2929- Open tabs
3030
31- ## Session Commands
31+ ## Browser Session Commands
3232
3333``` bash
34- # List all sessions
35- playwright-cli session- list
34+ # List all browser sessions
35+ playwright-cli list
3636
37- # Stop a specific session
38- playwright-cli session-stop mysession
37+ # Stop a browser session (close the browser)
38+ playwright-cli close # stop the default browser
39+ playwright-cli -s=mysession close # stop a named browser
3940
40- # Stop all sessions
41- playwright-cli session-stop -all
41+ # Stop all browser sessions
42+ playwright-cli close -all
4243
43- # Restart a session (useful after version updates )
44- playwright-cli session-restart mysession
44+ # Forcefully kill all daemon processes (for stale/zombie processes )
45+ playwright-cli kill-all
4546
46- # Delete session data (cookies, storage, etc.)
47- playwright-cli session-delete mysession
47+ # Delete browser session user data (profile directory)
48+ playwright-cli delete-data # delete default browser data
49+ playwright-cli -s=mysession delete-data # delete named browser data
4850```
4951
5052## Environment Variable
5153
52- Set a default session name via environment variable:
54+ Set a default browser session name via environment variable:
5355
5456``` bash
5557export PLAYWRIGHT_CLI_SESSION=" mysession"
@@ -64,100 +66,104 @@ playwright-cli open example.com # Uses "mysession" automatically
6466#! /bin/bash
6567# Scrape multiple sites concurrently
6668
67- # Start all sessions
68- playwright-cli --session =site1 open https://site1.com &
69- playwright-cli --session =site2 open https://site2.com &
70- playwright-cli --session =site3 open https://site3.com &
69+ # Start all browsers
70+ playwright-cli -s =site1 open https://site1.com &
71+ playwright-cli -s =site2 open https://site2.com &
72+ playwright-cli -s =site3 open https://site3.com &
7173wait
7274
7375# Take snapshots from each
74- playwright-cli --session =site1 snapshot
75- playwright-cli --session =site2 snapshot
76- playwright-cli --session =site3 snapshot
76+ playwright-cli -s =site1 snapshot
77+ playwright-cli -s =site2 snapshot
78+ playwright-cli -s =site3 snapshot
7779
7880# Cleanup
79- playwright-cli --session=site1 close
80- playwright-cli --session=site2 close
81- playwright-cli --session=site3 close
81+ playwright-cli close-all
8282```
8383
8484### A/B Testing Sessions
8585
8686``` bash
8787# Test different user experiences
88- playwright-cli --session =variant-a open " https://app.com?variant=a"
89- playwright-cli --session =variant-b open " https://app.com?variant=b"
88+ playwright-cli -s =variant-a open " https://app.com?variant=a"
89+ playwright-cli -s =variant-b open " https://app.com?variant=b"
9090
9191# Compare
92- playwright-cli --session =variant-a screenshot
93- playwright-cli --session =variant-b screenshot
92+ playwright-cli -s =variant-a screenshot
93+ playwright-cli -s =variant-b screenshot
9494```
9595
96- ### Testing without persistent profile
96+ ### Persistent Profile
9797
98- Use ` --in-memory ` flag to keep the browser profile in memory only :
98+ By default, browser profile is kept in memory only. Use ` --persistent ` flag on ` open ` to persist the browser profile to disk :
9999
100100``` bash
101- # Session data won't persist to disk
102- playwright-cli --in-memory open https://example.com
101+ # Use persistent profile (auto-generated location)
102+ playwright-cli open https://example.com --persistent
103+
104+ # Use persistent profile with custom directory
105+ playwright-cli open https://example.com --profile=/path/to/profile
103106```
104107
105- ## Default Session
108+ ## Default Browser Session
106109
107- When ` --session ` is omitted, commands use the default session:
110+ When ` -s ` is omitted, commands use the default browser session:
108111
109112``` bash
110- # These use the same default session
113+ # These use the same default browser session
111114playwright-cli open https://example.com
112115playwright-cli snapshot
113- playwright-cli close # Closes default session
116+ playwright-cli close # Stops default browser
114117```
115118
116- ## Session Configuration
119+ ## Browser Session Configuration
117120
118- Configure a session with specific settings:
121+ Configure a browser session with specific settings when opening :
119122
120123``` bash
121- # Configure session with config file
122- playwright-cli --session=mysession config --config=playwright-cli.json
124+ # Open with config file
125+ playwright-cli open https://example.com --config=. playwright/my -cli.json
123126
124- # Configure session with specific browser
125- playwright-cli --session=mysession config --browser=firefox
127+ # Open with specific browser
128+ playwright-cli open https://example.com --browser=firefox
126129
127- # Configure session in headed mode
128- playwright-cli --session=mysession config --headed
130+ # Open in headed mode
131+ playwright-cli open https://example.com --headed
129132
130- # Restart session to apply changes
131- playwright-cli session-restart mysession
133+ # Open with persistent profile
134+ playwright-cli open https://example.com --persistent
132135```
133136
134137## Best Practices
135138
136- ### 1. Name Sessions Semantically
139+ ### 1. Name Browser Sessions Semantically
137140
138141``` bash
139142# GOOD: Clear purpose
140- playwright-cli --session =github-auth open https://github.com
141- playwright-cli --session =docs-scrape open https://docs.example.com
143+ playwright-cli -s =github-auth open https://github.com
144+ playwright-cli -s =docs-scrape open https://docs.example.com
142145
143146# AVOID: Generic names
144- playwright-cli --session =s1 open https://github.com
147+ playwright-cli -s =s1 open https://github.com
145148```
146149
147150### 2. Always Clean Up
148151
149152``` bash
150- # Stop sessions when done
151- playwright-cli session-stop auth
152- playwright-cli session-stop scrape
153+ # Stop browsers when done
154+ playwright-cli -s= auth close
155+ playwright-cli -s= scrape close
153156
154157# Or stop all at once
155- playwright-cli session-stop-all
158+ playwright-cli close-all
159+
160+ # If browsers become unresponsive or zombie processes remain
161+ playwright-cli kill-all
156162```
157163
158- ### 3. Delete Stale Session Data
164+ ### 3. Delete Stale Browser Data
159165
160166``` bash
161- # Remove old session data to free disk space
162- playwright-cli session-delete oldsession
167+ # Remove old browser data to free disk space
168+ playwright-cli -s= oldsession delete-data
163169```
0 commit comments