from playwright.sync_api import sync_playwright class BrowserTool: def __init__(self): self.playwright = sync_playwright().start() self.browser = self.playwright.chromium.launch(headless=True) self.page = self.browser.new_page() def open_url(self, url: str): self.page.goto(url) return {"status": "opened", "url": url} def click(self, selector: str): self.page.click(selector) return {"status": "clicked", "selector": selector} def type(self, selector: str, text: str): self.page.fill(selector, text) return {"status": "typed", "selector": selector} def get_text(self): return { "content": self.page.content() } def screenshot(self, path="screen.png"): self.page.screenshot(path=path) return {"status": "screenshot", "path": path} def close(self): self.browser.close() self.playwright.stop()