AgentCore Browser mit Playwright verwenden
Sie können das Playwright Automation Framework mit dem Browser Tool verwenden:
Schritt 1: Abhängigkeiten installieren
Erstellen Sie einen Projektordner (falls Sie noch keinen erstellt haben) und installieren Sie die erforderlichen Pakete:
mkdir agentcore-browser-quickstart cd agentcore-browser-quickstart python3 -m venv .venv source .venv/bin/activate
Anmerkung
Verwenden Sie unter Windows: .venv\Scripts\activate
Installieren Sie die erforderlichen Pakete:
pip install bedrock-agentcore playwright boto3 nest-asyncio
Diese Pakete bieten:
-
bedrock-agentcore: Das SDK für Amazon AgentCore Bedrock-Tools, einschließlich Browser AgentCore -
playwright: Python-Bibliothek für Browserautomatisierung -
boto3: AWS SDK for Python (Boto3) zum Erstellen, Konfigurieren und Verwalten von Diensten AWS -
nest-asyncio: Ermöglicht das Ausführen von Asyncio-Ereignisschleifen innerhalb vorhandener Ereignisschleifen
Schritt 2: Steuern Sie den Browser mit Playwright
Sie können den Browser direkt ohne Agent-Framework oder LLM verwenden. Dies ist nützlich, wenn Sie die Browserautomatisierung programmgesteuert steuern möchten. Amazon Bedrock AgentCore bietet die Integration mit Playwright für die Browserautomatisierung.
Beispiel für Async Playwright
Erstellen Sie eine Datei mit dem Namen direct_browser_playwright.py und fügen Sie den folgenden Code hinzu:
from playwright.async_api import async_playwright, Playwright, BrowserType from bedrock_agentcore.tools.browser_client import browser_session import asyncio async def run(playwright: Playwright): # Create and maintain a browser session with browser_session('us-west-2') as client: # Get WebSocket URL and authentication headers ws_url, headers = client.generate_ws_headers() # Connect to the remote browser chromium: BrowserType = playwright.chromium browser = await chromium.connect_over_cdp( ws_url, headers=headers ) # Get the browser context and page context = browser.contexts[0] page = context.pages[0] try: # Navigate to a website await page.goto("https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html") # Print the page title title = await page.title() print(f"Page title: {title}") # Keep the session alive for 2 minutes to allow viewing print("\n\nBrowser session is active. Check the AWS Console for live view.") await asyncio.sleep(120) finally: # Clean up resources await page.close() await browser.close() async def main(): async with async_playwright() as playwright: await run(playwright) # Run the async function if __name__ == "__main__": asyncio.run(main())
Synchronisieren Sie das Playwright-Beispiel mit der Live-Ansicht
Alternativ können Sie die Sync-API mit integriertem Live-View-Server verwenden:
from playwright.sync_api import sync_playwright, Playwright, BrowserType from bedrock_agentcore.tools.browser_client import browser_session from browser_viewer import BrowserViewerServer import time def run(playwright: Playwright): # Create the browser session and keep it alive with browser_session('us-west-2') as client: ws_url, headers = client.generate_ws_headers() # Start viewer server viewer = BrowserViewerServer(client, port=8005) viewer_url = viewer.start(open_browser=True) # Connect using headers chromium: BrowserType = playwright.chromium browser = chromium.connect_over_cdp( ws_url, headers=headers ) context = browser.contexts[0] page = context.pages[0] try: page.goto("https://amazon.com/") print(page.title()) time.sleep(120) finally: page.close() browser.close() with sync_playwright() as playwright: run(playwright)
Führen Sie das Skript aus
Führen Sie eines der beiden Skripte aus:
python direct_browser_playwright.py
Erwartete Ausgabe
Der Seitentitel sollte gedruckt werden (z. B.Page title: What is Amazon Bedrock AgentCore? - Amazon Bedrock AgentCore). Das Skript hält die Browsersitzung 2 Minuten lang aktiv, bevor sie geschlossen wird.
Beide Beispiele:
-
Erstellen Sie eine verwaltete Browsersitzung mit dem Amazon Bedrock AgentCore Browser
-
Stellen Sie mithilfe des DevTools Chrome-Protokolls (CDP) von Playwright eine Connect zum Chrome-Remote-Browser her
-
Navigieren Sie zur AgentCore Dokumentation und drucken Sie den Seitentitel aus
-
Halten Sie die Sitzung für 2 Minuten aktiv, sodass Sie sie in der AWS Konsole ansehen können
-
Schließen Sie den Browser ordnungsgemäß und bereinigen Sie die Ressourcen