PuppeteerSharp 将参数传递给 evaluateFunctionAsync()

PuppeteerSharp passing parmaters to evaluateFunctionAsync()

您好,我在 puppeteersharp 中抓取了一个网页,并使用下面的脚本获取 canvas 项目上的图像,因为获取元素不会 return 其中的背景图像:

var canvasItem = await reactElement.QuerySelectorAllAsync("canvas.flot-base");
            string canvasImage = "";
            if(canvasItem!=null)
                foreach(var canvas in canvasItem)
                {
                  canvasImage+=await canvas.EvaluateFunctionAsync("e=>e.toDataURL()");
                  await canvas.EvaluateFunctionAsync($"(e,{canvasImage})=>\{var ctx=e.getContext('2d');var img=new Image(); img.onload=function()\{ctx.drawImage(img,0,0);};img.src=canvasImage}", canvasImage);
                }

base64 字符串 return 成功,但我不知道将其传递给 evaluateFunctionAsync() 脚本是否正确。 有人可以向我解释一下吗? 亲切的问候

你不需要那些括号。

await canvas.EvaluateFunctionAsync(@"(e, canvasImage)=> {
  var ctx=e.getContext('2d');
  var img=new Image(); 
  img.onload=function() {
    ctx.drawImage(img,0,0);};
    img.src=canvasImage
  }
}", canvasImage);