Explorer
/proc/15/root/tmp/verify_filters_browser.py
← Zurück ↓ Download
import asyncio,json,re
from pathlib import Path
from playwright.async_api import async_playwright
BASE='https://sma.agentsolutions-mallorca.com'
TESTS=[('14T','/cockpit?days=14'),('Priorität','/cockpit?days=14&sort=op_priority'),('Score','/cockpit?days=14&sort=relevance'),('Neu','/cockpit?days=14&sort=newest'),('Viral','/cockpit?days=14&sort=virality'),('LI','/cockpit?days=0&sort=linkedin'),('FB','/cockpit?days=0&sort=facebook')]
async def main():
 async with async_playwright() as p:
  b=await p.chromium.launch(headless=True,executable_path='/snap/bin/chromium',args=['--no-sandbox']); pg=await b.new_page(); out=[]
  for label,path in TESTS:
   r=await pg.goto(BASE+path,wait_until='networkidle',timeout=60000)
   cards=pg.locator('.sig'); count=await cards.count(); ids=[]; badges=[]
   for i in range(min(count,20)):
    ids.append(await cards.nth(i).get_attribute('id'))
    badges.append(await cards.nth(i).locator('.source-badge').inner_text() if await cards.nth(i).locator('.source-badge').count() else '')
   panel=False
   if count:
    await cards.first.locator('.thumb').click(force=True); await pg.wait_for_timeout(200); panel=await pg.locator('#pcontent.on').count()>0
   await pg.screenshot(path=f'/tmp/aa045-p4-{label.lower().replace("ä","a")}.png',full_page=True)
   out.append({'button':label,'url':path,'http':r.status if r else None,'cards':count,'first_ids':ids[:5],'badges':sorted(set(badges)),'panel_after_first_click':panel})
  # Dashboard -> Cockpit deep link.
  await pg.goto(BASE+'/dashboard',wait_until='networkidle',timeout=60000); rows=pg.locator('.sig-row'); first=await rows.first.get_attribute('onclick') if await rows.count() else ''
  sid=re.search(r'highlight=([0-9a-f-]+)',first or '').group(1) if re.search(r'highlight=([0-9a-f-]+)',first or '') else ''
  deep={}
  if sid:
   rr=await pg.goto(BASE+'/cockpit?highlight='+sid,wait_until='networkidle',timeout=60000); deep={'http':rr.status if rr else None,'sid':sid,'card':await pg.locator('#sig-'+sid).count(),'panel':await pg.locator('#pcontent.on').count()}
  out.append({'dashboard_rows':await rows.count(),'dashboard_deep_link':deep})
  await b.close(); print(json.dumps(out,ensure_ascii=False,indent=2))
asyncio.run(main())