Files
admin 777f7fe5d0 重开仓库内容:改推五个技能(browser-harness / humanizer / humanizer-zh / product-planning / session-mechanism)
按授权清空原有内容后重新提交(原 oil-ui-pro 一并移出,可从历史恢复)。
browser-harness 剔除 .venv 等运行环境;根 .gitignore 补记 .venv/ 与 node_modules/。
2026-10-07 16:06:02 +08:00

1.0 KiB
Raw Permalink Blame History

Screenshots

capture_screenshot() writes a PNG of the current viewport. The file is in device pixels — on a 2× display a 2296×1143 CSS viewport produces a 4592×2286 PNG.

That matters for two reasons:

  1. Click coordinates are CSS pixels. Don't read a target off the image and pass it to click_at_xy() directly without dividing by devicePixelRatio. The simplest workflow is to take the screenshot, look at it in a viewer that shows CSS coordinates, or measure relative positions and use js("window.devicePixelRatio") to convert.

  2. Some LLMs reject images > 2000 px per side. Long sessions on 2× displays will eventually hit this. Pass max_dim=1800 to downscale the file before it gets into the conversation:

capture_screenshot("/tmp/shot.png", max_dim=1800)

The downscale only happens when the image actually exceeds max_dim, so it's safe to leave on for every shot.

Use full-page screenshots (full=True) only when you need to see content below the fold — they are much larger and slower than viewport-only.