""" Simple demonstration of the CDP feature. To test this locally, follow these steps: 1. Create a shortcut for the executable Chrome file. 2. Add the following argument to the shortcut: - On Windows: `--remote-debugging-port=9222` 3. Open a web browser and navigate to `http://localhost:9222/json/version` to verify that the Remote Debugging Protocol (CDP) is running. 4. Launch this example. @dev You need to set the `GEMINI_API_KEY` environment variable before proceeding. """ import os import sys from pathlib import Path from dotenv import load_dotenv from pydantic import SecretStr from browser_use.agent.views import ActionResult sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import asyncio from langchain_google_genai import ChatGoogleGenerativeAI from browser_use import Agent, Controller from browser_use.browser.browser import Browser, BrowserConfig from browser_use.browser.context import BrowserContext load_dotenv() api_key = os.getenv('GEMINI_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') browser = Browser( config=BrowserConfig( headless=False, cdp_url="http://localhost:9222", ) ) controller = Controller() async def main(): task = f'In docs.google.com write my Papa a quick thank you for everything letter \n - Magnus' task += f' and save the document as pdf' model = ChatGoogleGenerativeAI(model='gemini-2.0-flash-exp',api_key=SecretStr(api_key)) agent = Agent( task=task, llm=model, controller=controller, browser=browser, ) await agent.run() await browser.close() input('Press Enter to close...') if __name__ == '__main__': asyncio.run(main())