使用Puppeteer时是否可以关闭devtool状态?

时间:2018-04-28 07:24:37

标签: google-chrome-devtools puppeteer google-chrome-headless

使用Puppeteer时可以关闭devtool状态吗? 因为有些网站可以保护他们的网页不被使用devtool进行检查,所以无法使用Puppeteer访问它。

我打开此网址https://jsbin.com/cecuzeb/edit?js,output以检查devtool状态

const browser = await puppeteer.launch({
  headless: false,
  devtools: false,
});
const page = await browser.newPage();
await page.goto('https://jsbin.com/cecuzeb/edit?js,output');

有没有办法让这个状态关闭?

1 个答案:

答案 0 :(得分:0)

下面的答案是一个理论版本,以防止基于主要问题上提供的jsbin链接使用/./.toString方法通过正常开发工具检测进行检测。

  • 停止所有页面间隔。由于大多数devtool检测库只是运行间隔检查,我们可以阻止它们。

    (function(w){w = w || window; var i = w.setInterval(function(){},100000); while(i>=0) { w.clearInterval(i--); }})(/*window*/);
    
  • 停止console.clear,如果没有console.clear正在运行,那么您在未经您许可的情况下无法清除控制台的问题。也停止打印"%c"或任何其他清算字符。

    console.clear = console.log = console.warn = console.error = () => {};