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

LOG = "/tmp/amdwork/state3.log"
def log(*a):
    with open(LOG, "a") as f:
        f.write(" ".join(str(x) for x in a) + "\n")

open(LOG, "w").close()
pages = list_pages()
log("PAGES:", json.dumps([p.get("url") for p in 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()
time.sleep(2)
log("URL:", pg.eval("location.href"))
log("HASH:", pg.eval("location.hash"))
log("TITLE:", pg.eval("document.title"))
log("READY:", pg.eval("document.readyState"))
log("BODYLEN:", pg.eval("document.body.innerText.length"))
log("BODYTEXT:", json.dumps((pg.eval("document.body.innerText") or "")[:1500]))
els = 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,a').forEach(function(e){
    if(!vis(e))return;
    out.push({tag:e.tagName.toLowerCase(),type:e.type||'',name:e.name||'',id:e.id||'',checked:e.checked, txt:(e.innerText||e.textContent||'').trim().slice(0,50)});
  });
  return JSON.stringify(out);
})()
""")
log("ELEMENTS:", els)
log("IFRAMES:", pg.eval("JSON.stringify(Array.from(document.querySelectorAll('iframe')).map(f=>f.src))"))
pg.screenshot("/tmp/amdwork/state-current.png")
log("SHOT:/tmp/amdwork/state-current.png")
log("DONE_STATE3")
pg.close()
