Openfang browser-automation
Playwright-based browser automation patterns for autonomous web interaction
install
source · Clone the upstream repo
git clone https://github.com/RightNow-AI/openfang
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/RightNow-AI/openfang "$T" && mkdir -p ~/.claude/skills && cp -r "$T/crates/openfang-hands/bundled/browser" ~/.claude/skills/rightnow-ai-openfang-browser-automation && rm -rf "$T"
manifest:
crates/openfang-hands/bundled/browser/SKILL.mdsource content
Browser Automation Skill
Playwright CSS Selector Reference
Basic Selectors
| Selector | Description | Example |
|---|---|---|
| By ID | |
| By class | |
| By element | , |
| By attribute | |
| Combined | |
Form Selectors
| Selector | Use Case |
|---|---|
| Email fields |
| Password fields |
| Search boxes |
| Google/search query |
| Multi-line text areas |
| Dropdown menus |
| Checkboxes |
| Radio buttons |
| Submit buttons |
Navigation Selectors
| Selector | Use Case |
|---|---|
| Cart links |
| Checkout links |
| Login links |
| Navigation menu links |
| Breadcrumb links |
| ARIA nav links |
E-commerce Selectors
| Selector | Use Case |
|---|---|
, | Product prices |
, | Add to cart buttons |
, | Cart total |
, | Quantity selectors |
, | Checkout buttons |
Common Workflows
Product Search & Purchase
1. browser_navigate → store homepage 2. browser_type → search box with product name 3. browser_click → search button or press Enter 4. browser_read_page → scan results 5. browser_click → desired product 6. browser_read_page → verify product details & price 7. browser_click → "Add to Cart" 8. browser_navigate → cart page 9. browser_read_page → verify cart contents & total 10. STOP → Report to user, wait for approval 11. browser_click → "Proceed to Checkout" (only after approval)
Account Login
1. browser_navigate → login page 2. browser_type → email/username field 3. browser_type → password field 4. browser_click → login/submit button 5. browser_read_page → verify successful login
Form Submission
1. browser_navigate → form page 2. browser_read_page → understand form structure 3. browser_type → fill each field sequentially 4. browser_click → checkboxes/radio buttons as needed 5. browser_screenshot → visual verification before submit 6. browser_click → submit button 7. browser_read_page → verify confirmation
Price Comparison
1. For each store: a. browser_navigate → store URL b. browser_type → search query c. browser_read_page → extract prices d. memory_store → save price data 2. memory_recall → compare all prices 3. Report findings to user
Error Recovery Strategies
| Error | Recovery |
|---|---|
| Element not found | Try alternative selector, use visible text, scroll page |
| Page timeout | Retry navigation, check URL |
| Login required | Inform user, ask for credentials |
| CAPTCHA | Cannot solve — inform user |
| Pop-up/modal | Click dismiss/close button first |
| Cookie consent | Click "Accept" or dismiss banner |
| Rate limited | Wait 30s, retry |
| Wrong page | Use browser_read_page to verify, navigate back |
Security Checklist
- Verify domain before entering credentials
- Never store passwords in memory_store
- Check for HTTPS before submitting sensitive data
- Report suspicious redirects to user
- Never auto-approve financial transactions
- Warn about phishing indicators (misspelled domains, unusual URLs)