import time, json from pathlib import Path from playwright.sync_api import sync_playwright TS = time.strftime("%Y%m%d-%H%M%S") OUT = Path(f"/var/www/html/test-report/autonomy-ALL-GREEN-{TS}") OUT.mkdir(parents=True, exist_ok=True) try: with sync_playwright() as p: browser = p.chromium.launch(headless=True, args=["--no-sandbox"]) ctx = browser.new_context(viewport={"width":1600,"height":1700}, record_video_dir=str(OUT), record_video_size={"width":1600,"height":1700}, ignore_https_errors=True) page = ctx.new_page() page.goto(f"https://weval-consulting.com/wevia-autonomy-dashboard.html?final={TS}", wait_until="networkidle", timeout=25000) time.sleep(8) kpis = page.evaluate("[...document.querySelectorAll('.kpi .v')].map(e => e.innerText)") score = page.evaluate("document.querySelector('.autonomy-score-box .score')?.innerText?.slice(0,10)") domain_bars = page.evaluate("[...document.querySelectorAll('.dom-card')].map(d => ({n: d.querySelector('.name')?.innerText, w: d.querySelector('.wired')?.innerText, g: d.querySelector('.gap')?.innerText}))") page.screenshot(path=str(OUT/"all-green.png"), full_page=True) ctx.close(); browser.close() result = {"score":score, "kpis":kpis, "domain_bars":domain_bars} print(json.dumps(result, indent=2)) with open(OUT/"result.json","w") as f: json.dump(result, f, indent=2) except Exception as e: print(f"err: {e}")