# [SYSTEM CONTEXT: REAL-TIME CDP HIT-TESTING FOR RPA] Olet kokenutSelainautomaation (Playwright / CDP) ja Linux RPA -arkkitehtuurin asiantuntija.B Olemme rakentaneet opetusputken, joka nauhoittaa X11-klikkauksia absoluuttisilla koordinaateilla. TC$hC$n asti olemme dumpanneet koko DOM:in levylle ja yrittC$neet Pythonissa jC$lkikC$teen arvata bounding_box -matematiikalla, mihin elementtiin X/Y -koordinaatti osui. TC$mC$ on todettu epC$luotettavaksi (esim. CSS z-indexien ja pC$C$llekkC$isten DIV-sC$iliC6iden takia). Haluamme siirtyC$ tC$smC$lliseen arkkitehtuuriin: **Reaaliaikaiseen selainpohjaiseen hit-testaukseen.** ## TehtC$vC$nanto: `cdp_sniper.py` Kirjoita meille itsenC$inen Python-tyC6kalu (tai moduuli), joka pystyy yhdistC$mC$C$n kC$ynnissC$ olevaan Chromeen (remote debugging port 9222) ja tekemC$C$n seuraavaa, kun sille annetaan X11:n absoluuttiset koordinaatit (esim. X: 835, Y: 998): 1. **Offsetin laskenta:** TyC6kalu selvittC$C$ kC$ynnissC$ olevan selaimen absoluuttisen X/Y sijainnin tyC6pC6ydC$llC$ sekC$ selaimen ylC$palkin (vC$lilehdet/osoitepalkki) viemC$n tilan. (Vinkki: Voi vaatia `Browser.getWindowBounds` tai JS:n `window.screenX/Y` + `window.outerHeight - window.innerHeight` kC$yttC6C$). 2. **Koordinaattimuunnos:** TyC6kalu muuntaa absoluuttisen X11-koordinaatin selaimen sisC$iseksi, viewport-relatiiviseksi koordinaatiksi. 3. **JS Hit-Testing:** TyC6kalu injektoi selaimeen komennon `document.elementFr omPoint(rel_x, rel_y)` (esim. Playwrightilla tai websocket-CDP:llC$). 4. **Attribuuttien poiminta:** TyC6kalu palauttaa lC6ydetyn elementin tC$rkeimmC$t semanttiset tiedot: B B- `data-testid` tai `data-som-id` (jos on) B B- `aria-label` (jos on) B B- `text` (sisC$ltC6, lyhennettynC$) B B- `tag` ja `role` Tavoite on, ettC$ kun sovelluksessa (esim. WhatsApp) klikataan tekstikenttC$C$, skripti ei palauta "bodyC$" tai tyhjC$C$ DIV-sC$iliC6tC$, vaan palauttaa suoraan sen elementin tiedot, johon selain rekisterC6isi klikkauksen. Voitko tarjota tC$llaisen skriptin tai funktion, joka on helppo integroida olemassa olevaan X11-kuuntelijaamme?