Agent Skills: Browser Use AgentCore Skill

>

UncategorizedID: tsaol/awesome-claude/browser-use-agentcore

Install this agent skill to your local

pnpm dlx add-skill https://github.com/tsaol/awesome-claude/tree/HEAD/skills/browser-use-agentcore

Skill Files

Browse the full folder contents for browser-use-agentcore.

Download Skill

Loading file tree…

skills/browser-use-agentcore/SKILL.md

Skill Metadata

Name
browser-use-agentcore
Description
>

Browser Use AgentCore Skill

Overview

This skill uses AWS Bedrock AgentCore Browser to perform automated web testing in the cloud. No local browser or display required - tests run on AWS infrastructure.

Features

  • Test any URL with a real browser
  • Capture full-page screenshots
  • Check for JavaScript console errors
  • Verify API health endpoints
  • View live browser session in AWS Console

Prerequisites

  1. AWS credentials configured
  2. IAM permissions for AgentCore Browser
  3. Python 3.10+

Required IAM Policy

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:StartBrowserSession",
        "bedrock-agentcore:StopBrowserSession",
        "bedrock-agentcore:GetBrowserSession"
      ],
      "Resource": "*"
    }
  ]
}

Quick Start

Install Dependencies

pip install bedrock-agentcore playwright boto3 nest-asyncio

Basic Usage

# Test a URL
python scripts/browser_test.py https://example.com

# Test with screenshot
python scripts/browser_test.py https://example.com --screenshot screenshot.png

# Test with API health check
python scripts/browser_test.py https://example.com --check-api

# Full test with JSON output
python scripts/browser_test.py https://example.com -s screenshot.png -a --json

Python API

Simple Test

from browser_test import test_url

# test_url is a synchronous function
results = test_url(
    url="https://example.com",
    screenshot_path="screenshot.png",
    check_api=True
)

print(f"Status: {results['status']}")
print(f"Title: {results['title']}")
print(f"Errors: {results['errors']}")

Advanced Usage with Playwright

from bedrock_agentcore.tools.browser_client import BrowserClient
from playwright.async_api import async_playwright

async def custom_test():
    client = BrowserClient(region="us-west-2")

    session = await client.start_browser_session(
        session_name="my-test",
        timeout=300,
        viewport={"width": 1920, "height": 1080}
    )

    ws_url, headers = await client.generate_ws_headers()

    async with async_playwright() as p:
        browser = await p.chromium.connect_over_cdp(ws_url, headers=headers)
        page = browser.contexts[0].pages[0]

        # Your custom test logic
        await page.goto("https://example.com")
        await page.click("button#submit")
        await page.wait_for_selector(".result")

        content = await page.content()
        await browser.close()

    await client.stop_browser_session()
    return content

Command Line Options

| Option | Short | Description | |--------|-------|-------------| | url | - | URL to test (required) | | --screenshot | -s | Path to save screenshot | | --check-api | -a | Check /api/health endpoint | | --region | -r | AWS region (default: us-west-2) | | --json | -j | Output results as JSON |

Output Format

Console Output

πŸš€ Starting browser session in us-west-2...
βœ… Browser session started: sess-abc123
πŸ”— Connecting to remote browser...
🌐 Navigating to https://example.com...
πŸ“„ Page title: Example Domain
πŸ“Š HTTP status: 200
πŸ“Έ Screenshot saved: screenshot.png

==================================================
πŸ“‹ Test Results
==================================================
URL: https://example.com
Status: 200
Title: Example Domain
Errors: 0

βœ… All checks passed!

JSON Output

{
  "url": "https://example.com",
  "status": 200,
  "title": "Example Domain",
  "errors": [],
  "api_check": {
    "url": "https://example.com/api/health",
    "status": 200,
    "body": "{\"status\":\"healthy\"}"
  },
  "screenshot": "screenshot.png"
}

Live View

While tests are running, you can watch the browser in real-time:

  1. Open AWS Console - AgentCore Browser
  2. Navigate to Built-in tools
  3. Find your active session
  4. Click View live session

Troubleshooting

Session Timeout

If tests timeout, increase the session timeout:

session = await client.start_browser_session(
    session_name="long-test",
    timeout=600  # 10 minutes
)

Permission Denied

Ensure your IAM role/user has the required permissions for AgentCore Browser.

Network Errors

Check that the target URL is accessible from AWS infrastructure. Internal/private URLs may not be reachable.

Regional Availability

AgentCore Browser is available in:

  • us-east-1 (N. Virginia)
  • us-west-2 (Oregon)

Pricing

AgentCore Browser uses consumption-based pricing with no upfront costs. See AWS Pricing for details.