import os, sys, json, time

os.environ["BU_NAME"] = "work"
sys.path.insert(0, "/opt/data/browser-harness")
from helpers import goto, wait_for_load, sleep, screenshot, cdp, click, scroll, list_tabs, page_info, new_tab, switch_tab
from admin import daemon_alive, start_remote_daemon

NAME = "work"
assert daemon_alive(NAME), "Browser not alive!"

# Wait a bit more and check page state
sleep(3)
screenshot("/tmp/tm_12_current_state.png")

# Get full page text
page_text = cdp("Runtime.evaluate", expression="document.body.innerText.substring(0, 4000)", returnByValue=True)
print(f"Full page text: {page_text}")

# Check all input fields
inputs_info = cdp("Runtime.evaluate", expression="""
    (function() {
        let allInputs = document.querySelectorAll('input');
        let info = [];
        for (let i = 0; i < allInputs.length; i++) {
            info.push({
                type: allInputs[i].type,
                name: allInputs[i].name,
                id: allInputs[i].id,
                placeholder: allInputs[i].placeholder,
                value: allInputs[i].value,
                visible: allInputs[i].offsetParent !== null
            });
        }
        return JSON.stringify(info);
    })();
""", returnByValue=True)
print(f"All inputs: {inputs_info}")

# Check all buttons
btns_info = cdp("Runtime.evaluate", expression="""
    (function() {
        let allBtns = document.querySelectorAll('button');
        let info = [];
        for (let i = 0; i < allBtns.length; i++) {
            info.push(allBtns[i].textContent.trim().substring(0, 50));
        }
        return JSON.stringify(info);
    })();
""", returnByValue=True)
print(f"Buttons: {btns_info}")

# Check current URL
url = cdp("Runtime.evaluate", expression="window.location.href", returnByValue=True)
print(f"URL: {url}")