C# NUnit中使用Playwright如何实现Chrome浏览器窗口最大化
C# 中配置Playwright启动Chrome最大化的实现方法
以下两种方案均适配C#版Playwright,可直接套用:
- 方案1:通过Chrome原生启动参数实现(推荐,启动即最大化,无窗口尺寸跳变)
实现逻辑是在启动Chromium时传入Chrome内置的最大化启动参数,必须同步将浏览器上下文的视口配置设为null,否则固定视口配置会覆盖启动参数的效果。
修正后的完整测试代码:
public async Task Test1() { using var playwright = await Playwright.CreateAsync(); await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions { Headless = false, // 传入Chrome原生最大化启动参数 Args = new[] { "--start-maximized" } }); var context = await browser.NewContextAsync(new BrowserNewContextOptions { // 必须取消固定视口配置,否则最大化参数不生效 ViewportSize = null }); var page = await context.NewPageAsync(); await page.GotoAsync("https://google.com/"); }
- 方案2:运行过程中动态调整为最大化
如果需要在页面操作中途切换为最大化状态,可以先获取当前主屏幕的分辨率,再通过Playwright接口修改视口尺寸:
如果是WPF项目,直接调用系统参数接口即可:
// 页面加载完成后调用 int width = (int)SystemParameters.PrimaryScreenWidth; int height = (int)SystemParameters.PrimaryScreenHeight; await page.SetViewportSizeAsync(width, height);
如果是控制台项目,先引用System.Windows.Forms程序集,再通过屏幕类获取尺寸:
int width = Screen.PrimaryScreen.Bounds.Width; int height = Screen.PrimaryScreen.Bounds.Height; await page.SetViewportSizeAsync(width, height);
踩坑提示:不要只添加
--start-maximized启动参数而跳过ViewportSize=null的配置,这是网上大部分零散教程没提到的关键点,漏了这步配置窗口永远不会最大化。
内容的提问来源于stack exchange,提问作者abhisek gupta
相关产品推荐
相关产品推荐

