feat(stream-test): drive the whole browse scenario with real input

Make every action real keyboard/mouse via xdotool, not just the visible
browsing: address-bar navigation (Ctrl+L + char-by-char typing), the YouTube
settings gear -> 화질 -> 1080p menu (real clicks, verified hd1080), the autoplay
toggle, the play button, and fullscreen via the real 'f' key (F11 isn't honored
by this WM; 'f' yields true 1080p fullscreen without pausing). CDP/DOM API is
now used only to read state for verification.
This commit is contained in:
javis-bot
2026-06-10 14:11:58 +09:00
parent 1e30a49562
commit 2cdd159fc1
3 changed files with 91 additions and 37 deletions

View File

@@ -9,9 +9,12 @@ real browsing session captured from the X display.
`DISCORD_GUILD_ID`, `DISCORD_VOICE_CHANNEL_ID`, `VNC_RESOLUTION`,
`VNC_FRAMERATE`, `VNC_BITRATE_KBPS`, `STREAM_HW`, `VNC_DISPLAY`).
- `human.mjs` - human-like interaction helpers. Real mouse/keyboard via
`xdotool` (so the cursor is visible in the stream); Playwright locates
elements. Behind-the-scenes control (fullscreen, play, quality, autoplay,
navigation) uses the CDP/DOM API.
`xdotool` (so the cursor is visible in the stream); Playwright only locates
elements. Every action is real input: address-bar navigation (Ctrl+L +
typing), search typing, clicking the video / settings menu / autoplay toggle /
play button, fullscreen via the `f` key, scrolling, and entering links. The
CDP/DOM API is used only to read state for verification, and as a rare click
fallback when an element has no on-screen box.
- `scenario.mjs` - the browse scenario (YouTube -> IU live -> 1080p ->
fullscreen -> Naver -> 나무위키), driven with the human helpers. Connects to a
Chrome already running with `--remote-debugging-port` (`CDP_PORT`, default