playwright浏览器屏幕最大化(全屏视口)

📅 2026/8/20 13:19:38
playwright浏览器屏幕最大化(全屏视口)
playwright浏览器屏幕最大化全屏视口目标playwright浏览器以最大化窗口启动页面视口占满屏幕可用区域全屏不再固定 1920×1080。实现方式两处配合实现1. 浏览器启动参数最大化窗口browser_type_launch_argsfixture 中为 chromium 追加--start-maximizedpytest.fixture(scopesession)defbrowser_type_launch_args(browser_type_launch_args):argslist(browser_type_launch_args.get(args)or[])ifsettings.BROWSERchromiumand--start-maximizednotinargs:args.append(--start-maximized)return{**browser_type_launch_args,headless:settings.HEADLESS,slow_mo:settings.SLOW_MO,args:args,}2. 上下文禁用视口模拟browser_context_argsfixture 中设置no_viewportTruepytest.fixture(scopesession)defbrowser_context_args(browser_context_args):return{**browser_context_args,base_url:settings.BASE_URL,no_viewport:True,ignore_https_errors:True,}关键原理踩坑记录PlaywrightPythonAPI 中viewportNone表示不指定实际仍使用 Playwright 默认视口1280×720——窗口最大化后页面视口仍被默认值锁死要真正让视口跟随窗口大小必须显式传no_viewportTrue等价于 JS API 的viewport: null。因此最大化窗口 禁用视口模拟组合才能让页面视口等于屏幕可用区域。行为对照运行模式页面视口innerWidth×innerHeight有头HEADLESS: false屏幕可用区域如 1920×1080 屏幕 →1920×963减去系统栏/浏览器 UI无头HEADLESS: truePlaywright 无头固有默认800×600无窗口不随屏幕验证方法fromplaywright.sync_apiimportsync_playwrightwithsync_playwright()asp:bp.chromium.launch(headlessFalse,args[--start-maximized])ctxb.new_context(no_viewportTrue)pagectx.new_page()page.goto(about:blank)print(page.evaluate(() [window.innerWidth, window.innerHeight]))b.close()注意事项--start-maximized仅对 chromium 生效项目默认浏览器即 chromium。无头模式下视口固定为 800×600若 CI 无头运行且用例依赖大视口需另行叠加显式viewport或page.set_viewport_size()。