Playwright Python Guide
FreshConnect Playwright for Python to Steel for managed browser sessions.
Method 1: One-Line Change
Replace your local browser launch:
python
# Before - local browser
browser = chromium.launch()
# After - Steel managed browser
browser = chromium.connect_over_cdp(
'wss://connect.steel.dev?apiKey=MY_STEEL_API_KEY'
)Method 2: Create and Connect
Use for proxy, CAPTCHA solving, and other advanced features:
python
import os
from playwright.sync_api import sync_playwright
from steel import Steel
client = Steel(steel_api_key=os.getenv('STEEL_API_KEY'))
def main():
# Create session with features
session = client.sessions.create(
use_proxy=True,
solve_captcha=True
)
# Connect Playwright
playwright = sync_playwright().start()
browser = playwright.chromium.connect_over_cdp(
f'wss://connect.steel.dev?apiKey={os.getenv("STEEL_API_KEY")}&sessionId={session.id}'
)
# Use existing context for session recording
context = browser.contexts[0]
page = context.new_page()
page.goto('https://example.com')
print(page.title())
# Cleanup
browser.close()
client.sessions.release(session.id)
playwright.stop()
main()Use Existing Context
Always use browser.contexts[0] instead of creating a new context. This ensures:
- Session is properly recorded in the live viewer
- Page events are captured for replay
- Browser fingerprint settings are applied correctly
Async Version
python
import asyncio
import os
from playwright.async_api import async_playwright
from steel import Steel
client = Steel(steel_api_key=os.getenv('STEEL_API_KEY'))
async def main():
session = client.sessions.create(use_proxy=True)
async with async_playwright() as playwright:
browser = await playwright.chromium.connect_over_cdp(
f'wss://connect.steel.dev?apiKey={os.getenv("STEEL_API_KEY")}&sessionId={session.id}'
)
context = browser.contexts[0]
page = await context.new_page()
await page.goto('https://example.com')
print(await page.title())
await browser.close()
client.sessions.release(session.id)
asyncio.run(main())Verification Checklist
- [ ] Install:
pip install playwright steel-sdk && playwright install chromium - [ ] Set
STEEL_API_KEYenvironment variable - [ ] Test Method 1 for basic connection
- [ ] Upgrade to Method 2 for advanced features
- [ ] Verify using
browser.contexts[0](not new context) - [ ] Confirm session releases