web-browser

Full-featured browser automation with CDP tools for collaborative site exploration.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "web-browser" with this command: npx skills add dwsy/agent/dwsy-agent-web-browser

Web Browser Skill

Full-featured browser automation with CDP tools for collaborative site exploration.

🔧 修复说明:已修复关闭主浏览器的问题。现在使用完全独立的浏览器实例,不影响你的主 Chrome。详见 FIX_NOTE.md

🎲 随机端口:每次启动时自动生成随机端口(9222-9999),避免端口冲突。端口信息保存在 ~/.cache/scraping-web-browser/port.txt ,下次启动会复用相同端口。

💾 持久化存储:默认使用 Chromium 浏览器,数据持久化保存在 ~/.cache/scraping-web-browser/ ,包括 cookies、localStorage、session data 等,重启后自动恢复。

Quick Start

Run demo to test everything works

node demo.js

Get current port

node scripts/get-port.js

Start Chromium browser (default, with persistent storage)

node scripts/start.js

Browser Management

Start Chromium (Default)

./scripts/start.js              # Start Chromium with persistent storage
./scripts/start.js --chrome     # Use Google Chrome instead of Chromium

Start Chromium on a random port (9222-9999) with remote debugging. The port is saved and reused for subsequent starts.

Important: This skill starts a completely independent browser instance with its own profile directory (~/.cache/scraping-web-browser ). It will NOT affect your existing Chrome browser or close any open tabs. The browser runs in the background and persists cookies, localStorage, and session data between restarts.

Stop Chrome

./scripts/stop.js               # Stop the browser

Gracefully stop the browser. Port configuration is preserved for next start.

Get Port

./scripts/get-port.js           # Show current port

Navigation

Navigate

./scripts/nav.js https://example.com
./scripts/nav.js https://example.com --new

Navigate current tab or open new tab.

Reload

./scripts/reload.js                     # Normal reload
./scripts/reload.js --force-cache       # Force using cache
./scripts/reload.js --force-no-cache    # Force reload without cache

Reload the current page with cache control.

Tabs

./scripts/tabs.js list                  # List all tabs
./scripts/tabs.js new                   # Open new tab
./scripts/tabs.js new "https://example.com"  # Open new tab with URL
./scripts/tabs.js switch 1              # Switch to tab by index
./scripts/tabs.js close 0               # Close tab by index
./scripts/tabs.js close-others          # Close all other tabs

Manage browser tabs.

Form Interaction

Click

./scripts/click.js "#submit-button"
./scripts/click.js ".cta-button"

Click an element by selector.

Type

./scripts/type.js "#username" "john@example.com"
./scripts/type.js "#password" "secret123"
./scripts/type.js "#search" "query" --clear    # Clear before typing

Type text into an input field.

Select

./scripts/select.js "#country" "United States"
./scripts/select.js "select[name=language]" "JavaScript"

Select an option from a dropdown.

Checkbox

./scripts/checkbox.js "#terms" check
./scripts/checkbox.js "#newsletter" uncheck
./scripts/checkbox.js "[name=privacy]" toggle

Check, uncheck, or toggle checkboxes and radiobuttons.

Submit

./scripts/submit.js "form"
./scripts/submit.js "#login-form"

Submit a form.

Waiting & Detection

Wait For

./scripts/wait-for.js selector "#result"
./scripts/wait-for.js visible ".loading"
./scripts/wait-for.js hidden ".spinner"
./scripts/wait-for.js text "Success"
./scripts/wait-for.js url "/dashboard" 5000

Wait for elements, visibility, text, or URL changes.

Wait For URL

./scripts/wait-for-url.js "https://example.com/dashboard"
./scripts/wait-for-url.js "/success" 5000

Wait for URL to change to a specific value.

Check Visible

./scripts/check-visible.js "#button"
./scripts/check-visible.js ".modal"

Check if an element is visible.

Get Element

./scripts/get-element.js "#button"
./scripts/get-element.js ".card"

Get detailed information about an element.

Storage & Cookies

Cookies

./scripts/cookies.js list
./scripts/cookies.js get "session"
./scripts/cookies.js set "token" "abc123"
./scripts/cookies.js delete "session"
./scripts/cookies.js clear
./scripts/cookies.js export cookies.json
./scripts/cookies.js import cookies.json

Manage cookies (list, get, set, delete, clear, export, import).

Storage

./scripts/storage.js list
./scripts/storage.js get local "token"
./scripts/storage.js set local "user" '{"name":"John"}'
./scripts/storage.js delete session "temp"
./scripts/storage.js clear local

Manage localStorage and sessionStorage.

Clear Data

./scripts/clear-data.js cookies
./scripts/clear-data.js localStorage
./scripts/clear-data.js sessionStorage
./scripts/clear-data.js cache
./scripts/clear-data.js all

Clear browser data.

Network & Performance

Network

./scripts/network.js start
./scripts/network.js stop
./scripts/network.js capture "https://example.com"
./scripts/network.js export requests.json

Monitor and capture network requests.

Performance

./scripts/performance.js

Get performance metrics and timing breakdown.

Intercept

./scripts/intercept.js block ".png"
./scripts/intercept.js mock "/api/data" '{"result":"success"}'
./scripts/intercept.js log "/api/"
./scripts/intercept.js clear

Block, mock, or log network requests.

Advanced Features

Scroll

./scripts/scroll.js down 500
./scripts/scroll.js up 500
./scripts/scroll.js top
./scripts/scroll.js bottom
./scripts/scroll.js element "#section"

Scroll the page.

Hover

./scripts/hover.js "#menu"
./scripts/hover.js ".dropdown"

Hover over an element.

Upload

./scripts/upload.js "#file-input" "/path/to/file.txt"
./scripts/upload.js "input[type=file]" "./image.png"

Upload a file.

Download

./scripts/download.js start "*.pdf"
./scripts/download.js click "#download-btn"
./scripts/download.js list
./scripts/download.js clear

Manage file downloads.

PDF

./scripts/pdf.js ./page.pdf
./scripts/pdf.js ./page.pdf A4
./scripts/pdf.js ~/Downloads/report.pdf Letter

Export current page as PDF.

Debugging & Tools

Debug

./scripts/debug.js

Show browser debug information.

Inspect

./scripts/inspect.js "#button"
./scripts/inspect.js ".card"

Inspect elements in detail.

Find Text

./scripts/find-text.js "Hello World"
./scripts/find-text.js "Error" --case-sensitive

Find text on the page.

Get Meta

./scripts/get-meta.js

Get page metadata (Open Graph, Twitter Card, JSON-LD, etc.).

JavaScript Evaluation

Evaluate JavaScript

./scripts/eval.js 'document.title'
./scripts/eval.js 'document.querySelectorAll("a").length'
./scripts/eval.js 'JSON.stringify(Array.from(document.querySelectorAll("a")).map(a => ({ text: a.textContent.trim(), href: a.href })).filter(link => !link.href.startsWith("https://")))'

Execute JavaScript in active tab (async context). Be careful with string escaping, best to use single quotes.

Screenshots

Screenshot

./scripts/screenshot.js

Screenshot current viewport, returns temp file path.

Element Selection

Pick Elements

./scripts/pick.js "Click the submit button"

Interactive element picker. Click to select, Cmd/Ctrl+Click for multi-select, Enter to finish.

Console

Check Console

./scripts/check-console.js

Check console logs and errors.

Console Logs

./scripts/console-logs.js

Get console logs.

Script Reference

Browser Management (3)

  • start.js

  • Start Chrome with random port

  • stop.js

  • Stop Chrome

  • get-port.js

  • Get current port

Navigation (3)

  • nav.js

  • Navigate to URL

  • reload.js

  • Reload page

  • tabs.js

  • Manage tabs

Form Interaction (5)

  • click.js

  • Click element

  • type.js

  • Type text

  • select.js

  • Select dropdown option

  • checkbox.js

  • Check/uncheck/toggle

  • submit.js

  • Submit form

Waiting & Detection (4)

  • wait-for.js

  • Wait for element/visible/hidden/text/url

  • wait-for-url.js

  • Wait for URL change

  • check-visible.js

  • Check element visibility

  • get-element.js

  • Get element info

Storage & Cookies (3)

  • cookies.js

  • Cookie management

  • storage.js

  • localStorage/sessionStorage management

  • clear-data.js

  • Clear browser data

Network & Performance (4)

  • network.js

  • Network monitoring

  • performance.js

  • Performance metrics

  • intercept.js

  • Request interception

  • reload.js

  • Reload with cache control

Advanced Features (6)

  • scroll.js

  • Page scrolling

  • hover.js

  • Mouse hover

  • upload.js

  • File upload

  • download.js

  • File download

  • pdf.js

  • PDF export

  • tabs.js

  • Tab management

Debugging & Tools (4)

  • debug.js

  • Debug information

  • inspect.js

  • Element inspection

  • find-text.js

  • Text search

  • get-meta.js

  • Page metadata

Core (4)

  • eval.js

  • JavaScript evaluation

  • screenshot.js

  • Screenshot

  • pick.js

  • Element picker

  • check-console.js

  • Console check

Total: 36 scripts

Best Practices

  • Always stop browser: Use node scripts/stop.js when done to release resources

  • Check port: Use node scripts/get-port.js to see current port

  • Error handling: If errors occur, restart browser and retry

  • Persistence: All data (cookies, localStorage, sessions) persists in ~/.cache/scraping-web-browser/

  • Wait strategies: Use wait-for.js for dynamic content

  • Network monitoring: Use network.js start/stop to analyze requests

  • Debugging: Use debug.js and inspect.js for troubleshooting

Port Management

  • Random port: Automatically generated on first start (9222-9999)

  • Port persistence: Port is saved to ~/.cache/scraping-web-browser/port.txt

  • Reuse: Next start uses the same port

  • Reset: Delete port.txt to get a new random port

  • Check port: Run node scripts/get-port.js to see current port

Configuration Directory

  • Config: ~/.cache/scraping-web-browser/

  • Port file: ~/.cache/scraping-web-browser/port.txt

  • Cookies: ~/.cache/scraping-web-browser/Default/Cookies

  • LocalStorage: ~/.cache/scraping-web-browser/Default/Local Storage/

Process Management


View process

ps aux | grep "scraping-web-browser"

Stop browser

node scripts/stop.js

Force stop

pkill -f "scraping-web-browser"

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

tavily-search-free

No summary provided by upstream source.

Repository SourceNeeds Review
-58
dwsy
Automation

office-combo

No summary provided by upstream source.

Repository SourceNeeds Review
-47
dwsy
Automation

skill-management

No summary provided by upstream source.

Repository SourceNeeds Review
-26
dwsy