如何防止 Chrome headless 加载图片
how to prevent Chrome headless from loading images
我是运行无头测试chrome其中一部分我想阻止浏览器加载页面上的图像,页面必须是数据url而不是普通页面。
我在下一个启动命令中使用无头 chrome:
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);
});
您可以使用此标志屏蔽图像。
它适用于金丝雀和稳定版。
chrome --headless --remote-debugging-port=9222
--blink-settings=imagesEnabled=false
对于 puppeteer,您可以使用 args
选项来传递闪烁设置参数
const browser = await puppeteer.launch({
args: [
'--blink-settings=imagesEnabled=false'
]
});
如果您使用的是 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
我是运行无头测试chrome其中一部分我想阻止浏览器加载页面上的图像,页面必须是数据url而不是普通页面。
我在下一个启动命令中使用无头 chrome:
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);
});
您可以使用此标志屏蔽图像。
它适用于金丝雀和稳定版。
chrome --headless --remote-debugging-port=9222 --blink-settings=imagesEnabled=false
对于 puppeteer,您可以使用 args
选项来传递闪烁设置参数
const browser = await puppeteer.launch({
args: [
'--blink-settings=imagesEnabled=false'
]
});
如果您使用的是 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