| |
| |
| |
| |
| |
|
|
| import pyperclip |
| from browser_use.agent.views import ActionResult |
| from browser_use.browser.context import BrowserContext |
| from browser_use.controller.service import Controller |
|
|
|
|
| class CustomController(Controller): |
| def __init__(self): |
| super().__init__() |
| self._register_custom_actions() |
|
|
| def _register_custom_actions(self): |
| """Register all custom browser actions""" |
|
|
| @self.registry.action("Copy text to clipboard") |
| def copy_to_clipboard(text: str): |
| pyperclip.copy(text) |
| return ActionResult(extracted_content=text) |
|
|
| @self.registry.action("Paste text from clipboard", requires_browser=True) |
| async def paste_from_clipboard(browser: BrowserContext): |
| text = pyperclip.paste() |
| |
| page = await browser.get_current_page() |
| await page.keyboard.type(text) |
|
|
| return ActionResult(extracted_content=text) |
|
|