import sys, os
sys.path.insert(0, os.path.abspath("."))
import socketserver
import threading
from tools.serve_web_pc import FreeExilePCRequestHandler
from playwright.sync_api import sync_playwright

s = socketserver.TCPServer(('127.0.0.1', 0), FreeExilePCRequestHandler)
port = s.server_address[1]
t = threading.Thread(target=s.serve_forever, daemon=True)
t.start()

with sync_playwright() as p:
    b = p.chromium.launch(channel='msedge', headless=True)
    page = b.new_page(viewport={'width': 1920, 'height': 1080})
    page.goto(f'http://127.0.0.1:{port}/index.html')
    page.wait_for_timeout(400)
    res = page.evaluate("Array.from(document.querySelectorAll('.iphone-frame')).map(e => ({ tag: e.tagName, id: e.id, class: e.className, parent: e.parentElement ? e.parentElement.id : null }))")
    print("Matching elements:", res)
    b.close()

s.shutdown()
s.server_close()
