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

使用Puppeteer+Stealth插件仍显示Chrome自动化控制标签的问题

问题解答与解决方案

核心疑问拆解

  • Chrome的提示会不会让其他网站识别出机器人?
    不会。Chrome显示的这两个提示是浏览器自身的状态标识,和网站检测机器人的逻辑完全独立。网站识别机器人靠的是浏览器指纹(比如navigator.webdriver属性、JS特征、Canvas指纹等),而你用的puppeteer-extra-plugin-stealth已经成功掩盖了这些特征——sannysoft检测全绿就是最好的证明,说明网站层面无法识别你是自动化程序。

  • 为什么检测工具全绿但Chrome仍有提示?
    这俩是两回事:

    1. “Chrome is being controlled by automated test software”:是因为Puppeteer默认启动Chrome时会添加--enable-automation参数,这是浏览器本身的提示,和网站检测无关;
    2. “Chrome for Testing...”:是因为Puppeteer默认下载的是专门的测试版Chrome(Chrome for Testing),而非普通用户用的稳定版Chrome,这个提示是测试版自带的。
      而sannysoft检测的是机器人特征,Stealth插件已经处理了这些特征,所以检测全绿,但浏览器自身的提示不受插件影响。
  • 是否该忽略标签?
    如果你的爬虫/机器人功能正常,网站没有拦截,完全可以忽略。这些提示只是给你看的,不会被网站用来识别机器人。但如果看着不舒服,也可以通过配置去掉。

  • 插件是否失效?
    没有失效。sannysoft所有检测项全绿已经证明插件在正常工作——它的作用是规避网站的机器人检测,而不是隐藏Chrome自身的自动化提示。

具体解决办法

1. 去掉“被自动化测试软件控制”的标签

在Puppeteer启动参数中添加--disable-blink-features=AutomationControlled,这个参数会禁用Chrome的自动化控制标识,从而去掉顶部的提示栏。

2. 去掉“Chrome for Testing”的提示

不要用Puppeteer默认下载的测试版Chrome,改用你本地安装的普通稳定版Chrome,只需要在launch时指定executablePath为本地Chrome的路径即可。

修改后的完整代码

const puppeteer = require('puppeteer-extra')
const prompt = require("prompt-sync")({ sigint: true });

const StealthPlugin = require('puppeteer-extra-plugin-stealth')
puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    // 禁用自动化控制标识,去掉顶部提示栏
    args: ['--disable-blink-features=AutomationControlled'],
    // 替换成你本地Chrome的实际路径
    executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' // Windows示例
    // executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' // Mac示例
    // executablePath: '/usr/bin/google-chrome' // Linux示例
  });

  const page = await browser.newPage();
  
  // 额外确保webdriver属性被隐藏(Stealth插件通常已处理,此步骤为双重保险)
  await page.evaluateOnNewDocument(() => {
    delete window.navigator.__proto__.webdriver;
  });
    
  await page.goto("https://bot.sannysoft.com/");
  finish = prompt("Shall we finish the program?");
  console.log(`Finishing program: ${finish}`);

  await browser.close();
})();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:15:54