import sys, time, json
sys.path.insert(0, "/tmp/curo")
import cdp

out = open("/tmp/curo/03.out", "w")
def log(*a):
    print(*a, file=out); out.flush()

# Reuse an existing about:blank page target (Chrome 148 requires PUT for /json/new)
t = cdp.find_target(want_blank=True)
if not t:
    t = cdp.list_pages()[0]
log("using target:", t.get("id"), t.get("url"))
# persist target id
with open("/tmp/curo/target.json", "w") as f:
    json.dump(t, f)

p = cdp.attach(t)
p.enable()
p.navigate("https://app.curogram.com")
time.sleep(8)

url = p.eval("location.href")
title = p.eval("document.title")
log("url:", url)
log("title:", title)

# Enumerate inputs and buttons
inputs = p.eval(r"""
JSON.stringify(Array.from(document.querySelectorAll('input')).map(function(el){
  return {type:el.type, name:el.name, id:el.id, placeholder:el.placeholder,
          ariaLabel:el.getAttribute('aria-label'), formcontrolname:el.getAttribute('formcontrolname'),
          autocomplete:el.autocomplete};
}))
""")
log("inputs:", inputs)
buttons = p.eval(r"""
JSON.stringify(Array.from(document.querySelectorAll('button, [type=submit]')).map(function(el){
  return {text:(el.innerText||'').trim().slice(0,40), type:el.type, disabled:el.disabled,
          ariaLabel:el.getAttribute('aria-label')};
}))
""")
log("buttons:", buttons)

p.screenshot("/tmp/curo/03-loginpage.png")
log("screenshot saved")
log("DONE-03")
p.close()
out.close()
