import sys, time
sys.path.insert(0, "/tmp/amdwork")
from cdp import list_pages, attach

pages = list_pages()
t = None
for p in pages:
    if "advancedmd" in (p.get("url") or ""):
        t = p; break
t = t or pages[0]
pg = attach(t)
pg.enable()
# wait for SPA to render some inputs (up to 20s)
deadline = time.time()+20
found = "[]"
while time.time() < deadline:
    found = pg.eval("""
    (function(){
      function vis(e){var r=e.getBoundingClientRect();var s=getComputedStyle(e);return r.width>0&&r.height>0&&s.display!=='none'&&s.visibility!=='hidden';}
      var out=[];
      document.querySelectorAll('input,select,button').forEach(function(e){
        if(!vis(e))return;
        out.push({tag:e.tagName.toLowerCase(),type:e.type||'',name:e.name||'',id:e.id||'',value:(e.type==='password'?'***':(e.value||'')),checked:e.checked, txt:(e.innerText||e.textContent||'').trim().slice(0,40), ph:e.placeholder||''});
      });
      return JSON.stringify(out);
    })()
    """)
    import json as _j
    if _j.loads(found):
        break
    time.sleep(1.5)
print("URL:", pg.eval("location.href"))
print("HASH:", pg.eval("location.hash"))
print("READYSTATE:", pg.eval("document.readyState"))
print("IFRAMES:", pg.eval("JSON.stringify(Array.from(document.querySelectorAll('iframe')).map(f=>({src:f.src,id:f.id})))"))
print("ELEMENTS:", found)
print("BODYLEN:", pg.eval("document.body.innerText.length"))
print("BODYTEXT:", pg.eval("document.body.innerText.slice(0,1200)"))
pg.screenshot("/tmp/amdwork/state-now.png")
print("SHOT:/tmp/amdwork/state-now.png")
pg.close()
print("DONE_STATE2")
