Javascript Puppeter:将截获图像请求的URL更改为base64图像

Javascript Puppeter:将截获图像请求的URL更改为base64图像,javascript,node.js,webdriver,puppeteer,Javascript,Node.js,Webdriver,Puppeteer,我需要截取.jpg和.gif图像,并用base64图像替换它们。 base64图像将在屏幕截图中可见 下面的代码阻止加载原始图像,但base64图像不会代替原始图像加载 如何用base64映像替换原始映像的src 等待页面。setRequestInterception(true); 第页('request',request=>{ const resourceUrl=request.url().toLowerCase(); const base64Image='数据:图像/png;base64,

我需要截取
.jpg
.gif
图像,并用base64图像替换它们。 base64图像将在屏幕截图中可见

下面的代码阻止加载原始图像,但base64图像不会代替原始图像加载

如何用base64映像替换原始映像的src


等待页面。setRequestInterception(true);
第页('request',request=>{
const resourceUrl=request.url().toLowerCase();
const base64Image='数据:图像/png;base64,IVBORW0KGGOAAAANSUHEUGAAAWBAMAACDA6BYAAMFBMVEUAACH4FEXMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKW9M+AACxBIWXMAAAWXMAAAAAAAAWAAW0LEW0LEQVR4AEZGAAJKASK5P2QGBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7BL7BLBQBQDW2L2XDBYNDGB8/0B1XUK8K8K8K8K8K8K8KWW8K8KWWW8K8K8K8KWWWWWWW8K8K8K8K8K8K2.中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国政府在一个中国六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六六XD8O2WO0INT/2cR2.在中国,一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的或者一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的或者一个中国的一个中国的一个中国的一个中国的或者一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的非非非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非中国的非DMS8CCPMDTPKI3GNaJ9AmQpkabgOlKVAnr3rwLo1sF+5CR6SYCDV04WWCWD9VDABKVSSK5K5J0H7AOCOAE8X+qC0y9rmHIrHWxau2X1W7PABmA26thMaxYI+dpu0UcxnJhpviibB/X9W9OAXS2TRPKFVAPWN42Q12DJTRL00UJNRNBVD+v7aKd0sR9rVJd+fAOTl+/KLO7PeUJfe+wD/5/JRHHWTAAAAAAAAAAZP33OLDMIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;
if(request.resourceType()='image'&&resourceUrl.indexOf('.png')===-1&&
resourceUrl.indexOf('.svg')=-1||
resourceUrl.indexOf('.jpg')!=-1||
resourceUrl.indexOf('.jpeg')!=-1||
resourceUrl.indexOf('.gif')!=-1){
请求,答复({
现状:200,
contentType:“图像/jpeg”,
标题:{
//地点:base64Image
//路径:base64Image
url:base64Image
},
});
return;//防止调用continue两次
}
请求。继续();
});
问题
request.respond
不能与
base64
响应一起使用。引自:

注意不支持模拟dataURL请求的响应

解决方案 相反,您可以使用需要首先从
base64
转换为二进制表示形式的缓冲数据进行回答:

const base64Data='iVBORw0KGgoAAA…';//在base64数据上,不带“data:image/png;base64,”
const buffer=buffer.from(base64Data,'base64');
// ...
请求,答复({
现状:200,
contentType:'image/png',
正文:缓冲区
});