| """ | |
| 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 dotenv import load_dotenv | |
| from pydantic import SecretStr | |
| 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 | |
| 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 = 'In docs.google.com write my Papa a quick thank you for everything letter \n - Magnus' | |
| task += ' and save the document as pdf' | |
| model = ChatGoogleGenerativeAI(model='gemini-2.0-flash-exp', api_key=SecretStr(str(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()) | |