browser-edge-cases

Diagnose and fix browser automation failures on complex websites using layered fallback patterns.

11.0k|5.7k|Updated Jan 12, 2026
One-click install
npx skills add https://github.com/aden-hive/hive --skill browser-edge-cases
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: browser-edge-cases
Source: https://github.com/aden-hive/hive/tree/main/.claude/skills/browser-edge-cases
Command: npx skills add https://github.com/aden-hive/hive --skill browser-edge-cases

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Browser automation tools often fail silently on complex sites like LinkedIn, Twitter/X, and SPAs—scrolls that don't move, clicks that don't register, snapshots that hang. This Skill provides a standard operating procedure to reproduce, diagnose, and fix these failures systematically.

Core Features & Use Cases

  • Structured Debugging SOP: A four-phase workflow (reproduce, analyze root cause, implement multi-layer fix, verify) for any browser tool failure.
  • Pattern Library: Six documented patterns covering nested scroll containers, overlay-covered elements, React synthetic events, huge DOM trees, SPA hydration delays, and Shadow DOM.
  • Edge Case Registry: A curated registry of 17 verified edge cases with symptoms, root causes, detection scripts, and fixes.
  • Use Case: When browser_interact(action="scroll") returns success but a LinkedIn feed doesn't move, follow the SOP to detect the nested scrollable container and apply the JavaScript fallback fix.

Quick Start

Ask the agent to debug why browser scrolling fails on a specific site using the browser edge cases SOP.

Frequently Asked Questions about browser-edge-cases

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix browser automation scroll not working on LinkedIn?

LinkedIn feeds use a nested scrollable div instead of the main window, so window-level scrolls do nothing. Detect the largest element with overflow scroll or auto, then dispatch scroll events at that container's center or call container.scrollBy() via JavaScript.

Why does my automated click succeed but trigger no action?

The target element is likely covered by a transparent overlay or the site uses React synthetic events that ignore CDP input. Verify with document.elementFromPoint at the element's center, then fall back to a JavaScript element.click() call.

How do I automate elements inside Shadow DOM?

Standard querySelector cannot reach elements inside a shadow root. Detect hosts by checking element.shadowRoot, then pierce the boundary with a selector like host >>> target or traverse shadowRoot chains in JavaScript.

Why does browser snapshot hang on LinkedIn or Twitter feeds?

Feeds with thousands of DOM nodes produce accessibility trees too large to serialize, causing hangs. Add a timeout parameter to the snapshot call, truncate the tree at around 2000 nodes, and fall back to a DOM-based snapshot.

How do I handle SPA navigation in browser automation?

SPAs use client-side routing, so wait_until load fires before content renders. Use wait_until networkidle or wait for a specific selector after navigation to ensure hydration has completed before interacting.

What are the limitations of CDP-based browser automation?

CDP events may not trigger React synthetic handlers, cross-origin redirects can break tracking, and stale browser contexts cause group ID errors. The SOP recommends JavaScript fallbacks, URL pattern matching, and restarting the browser session when state goes stale.