You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright-go启动Chromium:如何实现全屏并移除控制提示栏?

解决Playwright-Go中Chromium持久化上下文的全屏与控制提示问题

一、移除“Chrome正在被控制”提示栏

你遇到的提示栏问题源于参数拼写错误和缺少新版Chrome所需的自动化屏蔽参数,调整方案如下:

  • 修正拼写错误:将--ignore-deafault-args=enable-automation改为--ignore-default-args=enable-automation(原参数中deafault拼写错误,应为default)
  • 添加--disable-blink-features=AutomationControlled参数,该参数可阻止Chrome检测到自动化环境,彻底屏蔽控制提示栏
  • 保留--disable-infobars参数作为兜底保障

二、实现真正全屏

当前参数组合存在冲突,且命令行参数可能因页面加载逻辑不生效,可通过两种方式解决:

方式1:调整命令行参数

移除--start-maximized,仅保留--kiosk(该参数本身就是强制全屏模式),--kiosk与--app搭配使用时,会直接以全屏状态打开目标应用页面,无需额外最大化参数。

方式2:通过Playwright API主动触发全屏

若命令行参数仍不生效,可在页面加载完成后调用页面全屏API,确保页面真正进入全屏状态:

// 启动上下文后获取当前页面
page := browser.Pages()[0]
// 等待页面加载完成
_, err = page.WaitForNavigation(playwright.PageWaitForNavigationOptions{
    WaitUntil: playwright.WaitUntilStateNetworkidle,
})
if err != nil {
    // 处理导航错误
}
// 触发页面全屏
err = page.RequestFullscreen()
if err != nil {
    // 处理全屏错误
}

修改后的完整代码示例

browser, err := pw.Chromium.LaunchPersistentContext(userDataDir, playwright.BrowserTypeLaunchPersistentContextOptions{
    Headless:          playwright.Bool(false),
    Viewport:          nil,
    Args: []string{
        "--kiosk",
        "--app=https://youtube.com",
        "--no-zygote",
        "--no-sandbox",
        "--disable-infobars",
        "--hide-scrollbars",
        "--disable-setuid-sandbox",
        "--disable-dev-shm-usage",
        "--ignore-default-args=enable-automation",
        "--disable-blink-features=AutomationControlled",
    },
})
if err != nil {
    // 处理启动错误
}

// 可选:主动触发页面全屏
page := browser.Pages()[0]
_, err = page.WaitForNavigation(playwright.PageWaitForNavigationOptions{
    WaitUntil: playwright.WaitUntilStateNetworkidle,
})
if err == nil {
    err = page.RequestFullscreen()
}
if err != nil {
    // 处理全屏错误
}

内容的提问来源于stack exchange,提问作者Rodrigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:30:07