View a markdown version of this page

Uso AgentCore del navegador con Playwright - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso AgentCore del navegador con Playwright

Puedes usar el marco de automatización de Playwright con la herramienta de navegación:

Paso 1: Instalar las dependencias

Crea una carpeta de proyecto (si no la creaste antes) e instala los paquetes necesarios:

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

En Windows, usa: .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 el navegador AgentCore

  • playwright: Biblioteca de Python para la automatización de navegadores

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

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

Paso 2: Controla el navegador con Playwright

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

Ejemplo de Async Playwright

Crea un archivo con el nombre direct_browser_playwright.py y agrega 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())

Ejemplo de sincronización de Playwright con la vista en vivo

Como alternativa, puedes usar la API de sincronización con un 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 siguientes scripts:

python direct_browser_playwright.py

Salida esperada

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 cerrarse.

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 la sesión activa durante 2 minutos, lo que le permitirá verla en la AWS consola

  • Cierre correctamente el navegador y vacíe los recursos