Akwbw commited on
Commit
c80ddc9
Β·
verified Β·
1 Parent(s): 49fdb76

Create browser_controller.py

Browse files
Files changed (1) hide show
  1. browser_controller.py +35 -0
browser_controller.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from playwright.sync_api import sync_playwright
2
+
3
+ class BrowserController:
4
+ def __init__(self):
5
+ self.playwright = sync_playwright().start()
6
+ self.browser = self.playwright.chromium.launch(headless=False) # headless=True if you want invisible
7
+ self.page = self.browser.new_page()
8
+
9
+ def navigate(self, url):
10
+ self.page.goto(url)
11
+ return self.get_state()
12
+
13
+ def click(self, selector):
14
+ self.page.click(selector)
15
+ return self.get_state()
16
+
17
+ def type_text(self, selector, text):
18
+ self.page.fill(selector, text)
19
+ return self.get_state()
20
+
21
+ def scroll(self, pixels):
22
+ self.page.evaluate(f'window.scrollBy(0, {pixels})')
23
+ return self.get_state()
24
+
25
+ def get_state(self):
26
+ screenshot_bytes = self.page.screenshot()
27
+ html_content = self.page.content()
28
+ return {
29
+ "screenshot": screenshot_bytes.hex(), # Send as hex string
30
+ "html": html_content
31
+ }
32
+
33
+ def close(self):
34
+ self.browser.close()
35
+ self.playwright.stop()