File size: 916 Bytes
b4578fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import subprocess
import gradio as gr
from playwright.sync_api import sync_playwright
from PIL import Image
import io

# Install Playwright browsers
subprocess.run(["playwright", "install"], check=True)

# Initialize Playwright
p = sync_playwright().start()
browser = p.chromium.launch()
page = browser.new_page(viewport={"width": 1024, "height": 768})
page.goto("https://example.com")

def click_on_browser(evt: gr.SelectData):
    x, y = evt.index
    page.mouse.click(x, y)
    screenshot = page.screenshot()
    return Image.open(io.BytesIO(screenshot))

def get_screenshot():
    screenshot = page.screenshot()
    return Image.open(io.BytesIO(screenshot))

with gr.Blocks() as demo:
    gr.Markdown("### Simple Interactive Browser (Gradio)")
    img = gr.Image(value=get_screenshot, interactive=True, label="Click the browser").style(full_width=True)
    img.select(click_on_browser, None, img)

demo.launch()