Browser2 / browser_controller.py
Akwbw's picture
Create browser_controller.py
dd94df2 verified
raw
history blame contribute delete
918 Bytes
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()