【问题标题】:A way to prevent opening dev tools in puppeteer instance一种防止在 puppeteer 实例中打开开发工具的方法
【发布时间】:2019-01-03 23:10:20
【问题描述】:

我想阻止从 puppeteer 的 chromium 实例中打开开发工具。 不幸的是,发出的页面属于“其他”类型,因此无法通过 page.close 方法关闭。

这是我的问题,有没有办法通过开发协议或类似的东西来做到这一点?

browser.on('targetcreated', (target) => {
    if (target['_targetInfo']['type'] === 'other') {
        target.page().then(currPage => {
            currPage.close();
        });
    }
});

听说过 --disable-dev-tools 标志,但我认为它不再起作用了。

【问题讨论】:

    标签: javascript google-chrome chromium puppeteer


    【解决方案1】:

    这没有记录,但它对我有用:

    const browser = await puppeteer.launch({
      args: ['--devtools-flags=disable'],
      defaultViewport: { width: 1280, height: 900 }
    });
    const page = await browser.newPage();
    await page.goto('https://google.com');
    

    【讨论】:

      【解决方案2】:

      您可以将puppeteer.launch() 中的devtools 选项设置为false,以禁止Puppeteer 为每个选项卡自动打开DevTools 面板。

      const browser = await puppeteer.launch({
        devtools: false,
      });
      

      【讨论】:

      • 是的,但是以后你可以轻松打开它,我想永久禁用它
      【解决方案3】:

      这对我有用。在 DOM 加载时禁用页面上的所有间隔。

      const browser = await puppeteer.launch({ignoreHTTPSErrors: true, args:['--no-sandbox', '--single-process', '--start-maximized', '--headless', '--window-size=1920,1080', '--disable-gpu'], defaultViewport: { width: 1280, height: 900 }});
         const page = await browser.newPage();
      await page.evaluateOnNewDocument(() => {
         window.addEventListener('DOMContentLoaded', () =>  (function(w){w = w || window; var i = w.setInterval(function(){},100000); while(i>=0) { w.clearInterval(i--); }})(/*window*/));
       });
      await page.goto('https://blah.com');
      

      【讨论】:

        猜你喜欢
        • 2010-11-12
        • 1970-01-01
        • 2012-01-05
        • 2014-02-22
        • 2018-11-06
        • 2016-10-16
        • 1970-01-01
        • 1970-01-01
        • 2016-10-05
        相关资源
        最近更新 更多