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