import asyncio,json
from playwright.async_api import async_playwright
async def main():
 async with async_playwright() as p:
  browser=await p.chromium.launch(headless=True,args=['--no-sandbox','--use-angle=swiftshader','--enable-unsafe-swiftshader'])
  page=await browser.new_page(viewport={'width':1920,'height':1080},device_scale_factor=1)
  errors=[];page.on('pageerror',lambda e:errors.append(str(e)))
  await page.goto('http://127.0.0.1:18765/viewer/')
  await page.wait_for_function('window.__KIT_QA__?.ready',timeout=60000)
  await page.wait_for_timeout(1500)
  await page.screenshot(path='runtime_all.png')
  metrics=await page.evaluate('window.kitMetrics()')
  await page.evaluate("window.kitView('dormer')")
  await page.wait_for_timeout(500)
  await page.screenshot(path='runtime_dormer.png')
  qa=await page.evaluate('window.__KIT_QA__');qa['errors']=errors;qa['runtime_all_metrics']=metrics
  open('runtime_check.json','w').write(json.dumps(qa,indent=2));print(json.dumps(qa))
  await browser.close()
asyncio.run(main())
