import sys
sys.stdout.reconfigure(encoding='utf-8')
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp('http://localhost:9222')
    context = browser.contexts[0]
    page = context.pages[0] if context.pages else context.new_page()
    
    url = 'https://www.facebook.com/profile.php?id=61594841053758&sk=directory_personal_details'
    page.goto(url, wait_until='domcontentloaded', timeout=30000)
    page.wait_for_timeout(3000)
    
    # Locate the button for Current city or town
    print('Looking for Current city button...')
    btn = page.locator("div[role='main']").locator("text=/Current city or town/i").first
    # Click its parent button
    parent_btn = btn.locator("xpath=ancestor::div[@role='button']").first
    print('Parent button found:', parent_btn.count())
    if parent_btn.count() > 0:
        parent_btn.click()
    else:
        btn.click()
        
    page.wait_for_timeout(2000)
    page.screenshot(path=r'C:\Projects\Historical\FacebookAutoPoster\after_click_city_btn.png')
    
    # Check dialog or inputs inside div[role='main']
    dialog = page.locator("div[role='dialog']")
    print('Dialog count:', dialog.count())
    if dialog.count() > 0:
        print('Dialog text:', dialog.inner_text())
    else:
        print('No dialog. Checking main inputs:')
        inps = page.locator("div[role='main'] input, div[role='main'] textarea")
        print('Inputs in main:', inps.count())
        for i in range(inps.count()):
            inp = inps.nth(i)
            print(f"[{i}] type={inp.get_attribute('type')} aria={inp.get_attribute('aria-label')} placeholder={inp.get_attribute('placeholder')}")
