使用C#运行Playwright代码时弹出多个CMD窗口的问题求助
解决C# Playwright运行时弹出多个CMD窗口的问题
问题原因
Playwright启动Chromium等浏览器进程时,默认会弹出对应的控制台窗口,即便设置了Headless = true,底层进程的启动逻辑也可能导致CMD窗口出现。
解决方案
修改BrowserTypeLaunchOptions配置,添加Console = BrowserTypeLaunchConsoleOption.Hidden参数来隐藏控制台窗口,调整后的代码如下:
using (var playwright = await Playwright.CreateAsync()) { var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions() { Headless = true, Console = BrowserTypeLaunchConsoleOption.Hidden // 隐藏浏览器进程的控制台窗口 }).ConfigureAwait(false); var browserPageOptions = new BrowserNewPageOptions() { JavaScriptEnabled = true }; var page = await browser.NewPageAsync(browserPageOptions).ConfigureAwait(false); await page.GotoAsync(URL).ConfigureAwait(false); await page.WaitForRequestFinishedAsync(); var SourceCode = await page.ContentAsync().ConfigureAwait(false); await page.CloseAsync().ConfigureAwait(false); await browser.CloseAsync().ConfigureAwait(false); }
额外注意事项
- 需使用Playwright 1.25及以上版本,
Console属性是该版本后新增的配置项。 - 若在Windows桌面应用(如WinForms/WPF)中运行,可额外尝试在启动选项中设置
UseShellExecute = false和CreateNoWindow = true,不过优先使用Console属性即可解决绝大多数场景的问题。
内容的提问来源于stack exchange,提问作者Dorel
相关产品推荐
相关产品推荐

