"""一次性测试脚本:H5 scrollTop=0 截图,用于确认 MCP 截图区域对齐。""" import asyncio from pathlib import Path from playwright.async_api import async_playwright ROOT = Path(__file__).resolve().parents[2] async def main(): async with async_playwright() as p: browser = await p.chromium.launch(headless=True, args=["--hide-scrollbars"]) ctx = await browser.new_context( viewport={"width": 430, "height": 752}, device_scale_factor=3 ) page = await ctx.new_page() await page.goto( "http://127.0.0.1:5500/docs/h5_ui/pages/board-finance.html", wait_until="load", timeout=15000, ) await page.wait_for_timeout(2500) await page.evaluate("""() => { document.documentElement.style.overflow = 'auto'; document.documentElement.style.scrollbarWidth = 'none'; const s = document.createElement('style'); s.textContent = '::-webkit-scrollbar { display: none !important; }'; document.head.appendChild(s); }""") await page.wait_for_timeout(300) await page.evaluate("() => { window.scrollTo({top: 0, behavior: 'instant'}); }") await page.wait_for_timeout(500) out = ROOT / "docs" / "h5_ui" / "screenshots" / "h5-board-finance--scroll0-test.png" await page.screenshot(path=str(out), full_page=False) info = await page.evaluate("() => ({ scrollY: window.scrollY, innerH: window.innerHeight })") print(f"H5 scrollY={info['scrollY']}, innerHeight={info['innerH']}") print(f"截图保存: {out}") await browser.close() asyncio.run(main())