как запретить Chrome без головы загружать изображения

Я запускаю тест в безголовом хроме, и частично я хочу, чтобы браузер не загружал изображения на странице, страница должна быть URL-адресом данных, а не обычной страницей.
Я использую безголовый хром со следующим команда запуска:
chrome --headless --remote-debugging-port=9222

Я создал следующий тест, чтобы продемонстрировать, чего я пытаюсь достичь. но ничего не работает...

const CDP = require('chrome-remote-interface');
const fs = require('fs');

CDP(async(client) => {
  const {
    Page,
    Network
  } = client;
  try {
    await Page.enable();
    await Network.enable();
    await Network.emulateNetworkConditions({
      offline: true,
      latency: 0,
      downloadThroughput: 0,
      uploadThroughput: 0
    });
    await Page.navigate({
      url: "data:text/html,<h1>The next image should not be loaded</h1><img src='http://via.placeholder.com/350x150'>"
    });
    await Page.loadEventFired();
    const {
      data
    } = await Page.captureScreenshot();
    fs.writeFileSync((+new Date()) + '.png', Buffer.from(data, 'base64'));
  } catch (err) {
    console.error(err);
  } finally {
    await client.close();
  }
}).on('error', (err) => {
  console.error(err);
});


person Wazime    schedule 13.02.2018    source источник


Ответы (3)


Вы можете блокировать изображения, используя этот флаг.
Он работает на Canary и стабильной версии.

chrome --headless --remote-debugging-port=9222 --blink-settings=imagesEnabled=false

person kappatech    schedule 27.02.2018
comment
Странная вещь - с этой опцией на некоторых сайтах браузер не может получить файлы css - person Stanislav Belichenko; 24.07.2019

С помощью puppeteer вы можете использовать параметр args для передачи аргумента настройки мерцания.

const browser = await puppeteer.launch({
    args: [
      '--blink-settings=imagesEnabled=false'
    ]
});
person Joyce Babu    schedule 29.05.2018

Если вы используете Puppeteer, вы можете использовать следующий код:

await page.setRequestInterception(true);
page.on('request', (request) => {
    if (request.resourceType() === 'image') request.abort();
    else request.continue();
});

Откуда: https://github.com/puppeteer/puppeteer/blob/main/examples/block-images.js

person Zhou Hongbo    schedule 05.01.2021