#!/opt/fluchtplan/venv/bin/python
import sys, time
from playwright.sync_api import sync_playwright
ziel = sys.argv[1]; breite = int(sys.argv[2]) if len(sys.argv) > 2 else 360
with sync_playwright() as p:
    b = p.chromium.launch(args=['--no-sandbox'])
    s = b.new_page(viewport={'width': breite, 'height': 820}, device_scale_factor=2)
    fehler = []; s.on('pageerror', lambda e: fehler.append(str(e)))
    s.goto('http://127.0.0.1:8765/w_bild.html'); s.evaluate('window.__bereit'); time.sleep(0.5)
    s.evaluate("aktiv='4711'; render()"); time.sleep(0.4)
    s.evaluate("document.getElementById('cockpit').scrollIntoView()"); time.sleep(0.3)
    s.screenshot(path=f'{ziel}_1_cockpit.png')
    for seg in ['pflichten', 'zeit', 'beratung', 'ereignisse', 'asa']:
        s.evaluate(f"zeigeCheck('{seg}')"); time.sleep(0.4)
        if seg == 'pflichten': s.evaluate("pflichtOffen='pr-leitern'; renderCheck()"); time.sleep(0.2)
        s.evaluate("document.getElementById('check').scrollIntoView()"); time.sleep(0.2)
        s.screenshot(path=f'{ziel}_2_{seg}.png', full_page=False)
        if seg == 'pflichten':
            s.evaluate("document.getElementById('pf-pr-leitern').scrollIntoView({block:'center'})"); time.sleep(0.2); s.screenshot(path=f'{ziel}_2_{seg}b.png')
    s.evaluate("zeigeAnsicht('wv'); setzeWvModus('kennzahlen')"); time.sleep(0.4); s.screenshot(path=f'{ziel}_3_kennzahlen.png')
    print('Fehler:', fehler[:5])
    b.close()
