File size: 918 Bytes
c80ddc9 628b360 c80ddc9 dd94df2 c80ddc9 |
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 BrowserController:
def __init__(self):
self.playwright = sync_playwright().start()
self.browser = self.playwright.chromium.launch(headless=True)
self.page = self.browser.new_page()
def navigate(self, url):
self.page.goto(url)
return self.get_state()
def click(self, selector):
self.page.click(selector)
return self.get_state()
def type_text(self, selector, text):
self.page.fill(selector, text)
return self.get_state()
def scroll(self, pixels):
self.page.evaluate(f'window.scrollBy(0, {pixels})')
return self.get_state()
def get_state(self):
return {
"screenshot": self.page.screenshot().hex(),
"html": self.page.content()
}
def close(self):
self.browser.close()
self.playwright.stop() |