如何在NodeJS Puppeteer自动化登录时禁用Chrome密码管理器
解决Puppeteer中Chrome密码管理器弹窗问题
首先你启动配置里有个低级拼写错误:ars 应该改成 args——这直接导致你加的--password_manager_enabled=false参数根本没生效,先把这个改了再说。
下面给你几个靠谱的解决办法:
方案1:用正确的启动参数
替换掉原来的密码管理器相关参数,用下面这组:
let browser = await puppeteer.launch({ args: [ '--no-sandbox', '--disable-save-password-bubble', '--password-manager-enable=false' ], ignoreDefaultArgs: ["--enable-automation"], headless: false });
注意参数是--password-manager-enable=false(短横线分隔,不是下划线),再加上--disable-save-password-bubble直接屏蔽保存密码的气泡弹窗。
方案2:通过Chrome偏好设置彻底禁用
直接在启动配置里修改Chrome的用户设置,从根源上关掉密码管理器:
let browser = await puppeteer.launch({ args: ['--no-sandbox'], ignoreDefaultArgs: ["--enable-automation"], headless: false, userPreferences: { 'profile.password_manager_enabled': false, 'credentials_enable_service': false } });
这个方法比单纯加启动参数更稳定,因为是直接修改Chrome的核心配置。
方案3:页面内监听并关闭弹窗(兜底)
如果前两种方法都不管用,就加个弹窗监听,直接关掉密码保存提示:
const page = await browser.newPage(); // 监听所有对话框,碰到保存密码的就直接关闭 page.on('dialog', async dialog => { if (dialog.message().includes('保存密码')) { await dialog.dismiss(); } }); // 这里执行你的登录代码...
内容的提问来源于stack exchange,提问作者nelson mundaca
相关产品推荐
相关产品推荐

