防止在操纵up实例中打开开发工具的方法

时间:2018-07-26 21:12:46

标签: javascript google-chrome chromium puppeteer

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

这是我的问题,是否可以通过开发协议或类似的方法来实现?

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

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

3 个答案:

答案 0 :(得分: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');

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

这对我有用。禁用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');