View a markdown version of this page

Uso AgentCore del navegador con Playwright - Amazon Bedrock AgentCore

Uso AgentCore del navegador con Playwright

Puede utilizar el marco de automatización de dramaturgos con la herramienta de navegador:

Paso 1: Instalar las dependencias

Cree una carpeta de proyecto (si no la creó antes) e instale los paquetes necesarios:

mkdir agentcore-browser-quickstart cd agentcore-browser-quickstart python3 -m venv .venv source .venv/bin/activate
nota

En Windows, utilice: .venv\Scripts\activate

Instale los paquetes obligatorios:

pip install bedrock-agentcore playwright boto3 nest-asyncio

Estos paquetes proporcionan:

  • bedrock-agentcore: El SDK para las AgentCore herramientas de Amazon Bedrock, incluido AgentCore el navegador

  • playwright: biblioteca de Python para la automatización del navegador

  • boto3: AWS SDK para Python (Boto3) para crear, configurar y administrar servicios AWS

  • nest-asyncio: Permite ejecutar bucles de eventos asíncronos dentro de bucles de eventos existentes

Paso 2: Controla el navegador con Playwright

Puede usar Browser directamente sin un marco de agente o un LLM. Esto resulta útil cuando se quiere controlar mediante programación la automatización del navegador. Amazon Bedrock AgentCore ofrece integración con Playwright para la automatización del navegador.

Ejemplo de Async Playwright

Cree un archivo con el nombre direct_browser_playwright.py y añada el siguiente código:

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())

Sincronice el ejemplo de Playwright con la vista en directo

Como alternativa, puedes usar la API de sincronización con el servidor de visualización en vivo integrado:

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)

Ejecute el script

Ejecute cualquiera de los dos scripts:

python direct_browser_playwright.py

Resultado esperado

Debería ver impreso el título de la página (por ejemplo,Page title: What is Amazon Bedrock AgentCore? - Amazon Bedrock AgentCore). El script mantiene activa la sesión del navegador durante 2 minutos antes de cerrarla.

Ambos ejemplos:

  • Cree una sesión de navegador gestionada con Amazon Bedrock AgentCore Browser

  • Conéctese al navegador Chrome remoto mediante el DevTools Protocolo Chrome (CDP) de Playwright

  • Navegue hasta la AgentCore documentación e imprima el título de la página

  • Mantenga activa la sesión durante 2 minutos para que pueda verla en la AWS consola

  • Cierre correctamente el navegador y limpie los recursos