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

如何使用Puppeteer绕过Chrome的‘无可用密钥’原生弹窗?

解决Puppeteer自动化登录时Chrome“无可用密钥”原生弹窗问题

针对你遇到的2024年4月Chrome新增的“无可用密钥”原生弹窗问题,可通过以下方案解决:

核心解决方案:禁用Chrome密钥/密码相关功能

1. 补充启动参数

在现有启动参数中添加针对密钥、密码管理器的禁用项:

args: [
  "--autoplay-policy=user-gesture-required",
  "--disable-backgrounding-occluded-windows",
  "--disable-breakpad",
  "--disable-client-side-phishing-detection",
  "--disable-component-update",
  "--disable-default-apps",
  "--disable-dev-shm-usage",
  "--disable-domain-reliability",
  "--disable-extensions",
  // 新增:禁用密码管理器与WebAuthn功能
  "--disable-features=PasswordManager,WebAuthentication",
  "--disable-password-generation",
  "--disable-save-password-bubble",
  "--disable-form-autofill",
  "--disable-blink-features=AutomationControlled"
]

2. 更新用户偏好配置

修改UserPreferencePlugin的配置,直接关闭密钥服务与密码管理器:

puppeteer.use(
  UserPreferencePlugin({
    userPrefs: {
      safebrowsing: {
        enabled: false,
        enhanced: false,
      },
      // 新增:禁用凭证服务与密码管理器
      credentials_enable_service: false,
      profile: {
        password_manager_enabled: false,
      },
      webauthn: {
        enable_webauthn: false,
      }
    },
  })
);

3. 调整Stealth插件配置

避免过度删除Stealth插件的evasion项,保留必要的自动化特征隐藏逻辑(如果之前删除的项影响了效果,可恢复默认配置):

const stealth = StealthPlugin();
// 若之前的删除操作导致问题,可注释掉以下两行,使用默认evasion配置
// stealth.enabledEvasions.delete("iframe.contentWindow");
// stealth.enabledEvasions.delete("media.codecs");
puppeteer.use(stealth);

完整代码示例

import puppeteer from "puppeteer-extra";
import AnonymizeUAPlugin from "puppeteer-extra-plugin-anonymize-ua";
import StealthPlugin from "puppeteer-extra-plugin-stealth";
import AdblockerPlugin from "puppeteer-extra-plugin-adblocker";
import UserPreferencePlugin from "puppeteer-extra-plugin-user-preferences";

const stealth = StealthPlugin();
// 按需调整evasion项,建议保留默认配置以更好隐藏自动化特征
puppeteer.use(stealth);
puppeteer.use(AnonymizeUAPlugin());
puppeteer.use(AdblockerPlugin({ blockTrackers: true }));
puppeteer.use(
  UserPreferencePlugin({
    userPrefs: {
      safebrowsing: {
        enabled: false,
        enhanced: false,
      },
      credentials_enable_service: false,
      profile: {
        password_manager_enabled: false,
      },
      webauthn: {
        enable_webauthn: false,
      }
    },
  })
);

// 启动浏览器
const browser = await puppeteer.launch({
  args: [
    "--autoplay-policy=user-gesture-required",
    "--disable-backgrounding-occluded-windows",
    "--disable-breakpad",
    "--disable-client-side-phishing-detection",
    "--disable-component-update",
    "--disable-default-apps",
    "--disable-dev-shm-usage",
    "--disable-domain-reliability",
    "--disable-extensions",
    "--disable-features=PasswordManager,WebAuthentication",
    "--disable-password-generation",
    "--disable-save-password-bubble",
    "--disable-form-autofill",
    "--disable-blink-features=AutomationControlled"
  ],
  // 调试时可设置为false可视化窗口
  headless: "new"
});

额外提示

  • 确保Puppeteer及所有插件为最新版本,避免版本兼容问题;
  • 若仍有问题,可尝试添加--no-sandbox和--disable-setuid-sandbox参数(注意生产环境使用的安全风险)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:20:21