File size: 959 Bytes
62eebb7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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()