Claude Code Plugins

Community-maintained marketplace

Feedback

Core Browser Automation

@mbosseme/computer-use-1
0
0

General-purpose patterns for reliable browser automation (selectors, waiting, scrolling, overlays, HITL).

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name Core Browser Automation
description General-purpose patterns for reliable browser automation (selectors, waiting, scrolling, overlays, HITL).
tools playwright

Selector Strategy (Stability First)

  • Priority 1: data-testid, data-test, data-cy, id (if stable).
  • Priority 2: Accessible roles with names (e.g., getByRole('button', { name: 'Submit' })).
  • Priority 3: Text content (e.g., getByText('Submit')) - use with caution if text is dynamic.
  • Avoid: Brittle CSS selectors (e.g., div > div:nth-child(3)), XPath, or selectors tied to visual layout.

Waiting Strategy (No Flaky Sleeps)

  • Explicit Waits: Wait for elements to be attached, visible, and enabled before interacting.
  • State Changes: Wait for clear UI signals (spinners disappearing, success messages appearing).
  • Bounded Polling: If no clear signal exists, use a loop with a short sleep (1-2s) and a max retry count.
  • Avoid: Long blind sleeps (e.g., sleep(5000)).

Scroll Strategy

  • Window vs. Container: Determine if the scrollbar belongs to the window or a specific container element.
  • Incremental Scan: Scroll in small chunks (e.g., half viewport) to trigger lazy-loading or reveal elements.
  • Check after Scroll: Re-evaluate the page state after scrolling (elements might become visible).

Handling Overlays & Modals

  • Detection: Watch for common overlay selectors (dialogs, cookie banners, "interstitial" layers).
  • Dismissal: Look for "Close", "X", "Accept", "Reject", "No thanks" buttons.
  • Click Intercepted: If a click fails due to an overlay, find the overlay, dismiss it, and retry the click.

Frames & Iframes

  • Detection: If an element is not found, check if it resides within an iframe.
  • Switching: Switch context to the iframe before querying elements inside it.

Human-in-the-Loop (HITL) Policy

  • Auth: Stop for Login/SSO/MFA/CAPTCHA. Ask user to complete and type "Done".
  • Irreversible Actions: ALWAYS ask for explicit confirmation before clicking:
    • Submit / Complete / Finish
    • Attest / Certify
    • Approve / Confirm / Yes
    • Send / Pay
  • Ambiguity: If unsure if an action is irreversible, ASK first.

Recovery Rules

  • Element not found:
    • Check for iframes.
    • Check for shadow DOM.
    • Check if the element is behind an overlay.
    • Scroll to bring it into view.
  • Click intercepted:
    • Identify the obscuring element.
    • Dismiss it (if it's a modal/banner).
    • Wait for it to disappear (if it's a toast/spinner).
  • Stale element:
    • Re-query the element from the DOM before interacting.