Skills se-browser-automation
Browser automation patterns and best practices for OpenClaw browser control. Use when navigating web apps, filling forms, clicking elements, or extracting data from websites. Covers GHL, Lovable, and general SPA navigation patterns.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/boris148/se-browser-automation" ~/.claude/skills/openclaw-skills-se-browser-automation && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/boris148/se-browser-automation" ~/.openclaw/skills/openclaw-skills-se-browser-automation && rm -rf "$T"
manifest:
skills/boris148/se-browser-automation/SKILL.mdsource content
Browser Automation Skill
Profile
- Use profile:
for all automated browsingopenclaw - Browser is managed by OpenClaw gateway
Core Patterns
Navigation
- Use
with direct URLs when possible (faster than clicking through menus)browser navigate - Always
after navigation — SPAs load content asynchronouslysleep 4-6 - If page seems blank, try
first — content may be rendered but not in DOM snapshotscreenshot
Element Interaction
- Use
to get element refs, thensnapshot
with refsact - For iframe content: use
parameter in snapshotframe - If compact snapshot misses content, try full snapshot or screenshot
- GHL and complex SPAs often render in iframes — check both main page and iframe
Screenshots vs Snapshots
- Snapshot — DOM tree, good for finding clickable refs
- Screenshot — Visual image, good for understanding what's actually on screen
- When snapshot shows empty/minimal content but screenshot shows a full page → content is in iframe or shadow DOM
Login Flows
- Navigate to login page
- Snapshot to find form fields
- Click + type credentials
- Handle 2FA (check email, enter code)
- Wait for redirect (sleep 4-6 seconds)
- Verify logged in via screenshot
Common Issues
- Popups/modals blocking → Press Escape
- Lazy-loaded content → Wait longer, refresh, or navigate directly via URL
- iframe content → Use frame parameter or evaluate JS to find iframe
- evaluate function errors → No
,const
, or arrow functions. Uselet
andvar
syntax.function(){} - ref required errors → Must use ref from snapshot, can't use text selectors
SPA-Specific Tips
- SPAs don't fully reload on navigation — URL changes but DOM updates incrementally
- Some content only appears after JavaScript execution
- If clicking a link doesn't work, try navigating directly to the URL
- F5 refresh can help when SPA state gets stuck