webapp-testing
2
总安装量
2
周安装量
#65324
全站排名
安装命令
npx skills add https://github.com/forever-efficient/pitfal-solutions-website --skill webapp-testing
Agent 安装分布
mcpjam
2
qwen-code
2
windsurf
2
crush
2
claude-code
2
Skill 文档
Web Application Testing
To test local web applications, write native Python Playwright scripts.
Decision Tree: Choosing Your Approach
User task â Is it static HTML?
ââ Yes â Read HTML file directly to identify selectors
â ââ Success â Write Playwright script using selectors
â ââ Fails/Incomplete â Treat as dynamic (below)
â
ââ No (dynamic webapp) â Is the server already running?
ââ No â Start the server first, then write Playwright script
â
ââ Yes â Reconnaissance-then-action:
1. Navigate and wait for networkidle
2. Take screenshot or inspect DOM
3. Identify selectors from rendered state
4. Execute actions with discovered selectors
Example: Basic Playwright Script
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True) # Always launch chromium in headless mode
page = browser.new_page()
page.goto('http://localhost:5173')
page.wait_for_load_state('networkidle') # CRITICAL: Wait for JS to execute
# ... your automation logic
browser.close()
Reconnaissance-Then-Action Pattern
-
Inspect rendered DOM:
page.screenshot(path='/tmp/inspect.png', full_page=True) content = page.content() page.locator('button').all() -
Identify selectors from inspection results
-
Execute actions using discovered selectors
Common Pitfall
- Don’t inspect the DOM before waiting for
networkidleon dynamic apps - Do wait for
page.wait_for_load_state('networkidle')before inspection
Best Practices
- Use
sync_playwright()for synchronous scripts - Always close the browser when done
- Use descriptive selectors:
text=,role=, CSS selectors, or IDs - Add appropriate waits:
page.wait_for_selector()orpage.wait_for_timeout()