Webui / src /controller /custom_controller.py
Josedcape's picture
Update src/controller/custom_controller.py
d4ca640 verified
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):
@self.registry.action("Copy text to clipboard")
def copy_to_clipboard(text: str):
try:
pyperclip.copy(text)
return ActionResult(extracted_content=text)
except Exception as e:
return ActionResult(error=f"Failed to copy text to clipboard: {str(e)}")
@self.registry.action("Paste text from clipboard", requires_browser=True)
async def paste_from_clipboard(browser: BrowserContext):
try:
text = pyperclip.paste()
page = await browser.get_current_page()
if not page:
return ActionResult(error="No active page found in browser.")
await page.keyboard.type(text)
return ActionResult(extracted_content=text)
except Exception as e:
return ActionResult(error=f"Failed to paste text from clipboard: {str(e)}")