如何使用Puppeter将数据发送到WebSocket

如何使用Puppeter将数据发送到WebSocket,websocket,puppeteer,puppeteer-sharp,Websocket,Puppeteer,Puppeteer Sharp,我使用Puppeter sharp通过WebSocket转储页面接收和发送的数据。在C#中转储数据的代码: 异步任务转储() { var client=await_browser.Page.Target.CreateCDPSessionAsync(); 等待client.sendaync(“Network.enable”); client.MessageReceived+=OnChromeDevProtocolMessage; } void OnChromeDevProtocolMessage(

我使用Puppeter sharp通过WebSocket转储页面接收和发送的数据。在C#中转储数据的代码:

异步任务转储()
{
var client=await_browser.Page.Target.CreateCDPSessionAsync();
等待client.sendaync(“Network.enable”);
client.MessageReceived+=OnChromeDevProtocolMessage;
}
void OnChromeDevProtocolMessage(对象发送方,MessageEventArgs eventArgs)
{
if(eventArgs.MessageID==“Network.webSocketCreated”)
{
Trace($“Network.webSocketCreated:{eventArgs.MessageData}”);
}
else if(eventArgs.MessageID==“Network.webSocketFrameSent”)
{
Trace($“Network.webSocketFrameSent:{eventArgs.MessageData}”);
}
else if(eventArgs.MessageID==“Network.webSocketFrameReceived”)
{        
var cdpMessage=JsonConvert.DeserializeObject(eventArgs.MessageData.ToString());
ProcessMessage(cdpMessage);
}
}
有没有办法使用Puppeter或直接使用Chrome-Dev协议消息将数据发送到WebSocket

编辑: 或者可以通过某种方式获取WebSocket实例(或句柄)以在JavaScript代码中使用它来使用EvaluateFunctionAsync发送数据吗?

可以在命令行API中使用,也可以在Puppeter中使用,以查找实例。之后,只需使用EvaluateFunction对对象执行send方法。在木偶艺术中,它看起来像这样:

//CODE SNIPPET
 var prototype = await page.EvaluateExpressionHandleAsync("WebSocket.prototype");
var socketInstances = await page.QueryObjectsAsync(prototype);
await page.EvaluateFunctionAsync("(instances) => {let instance = instances[0]; instance.send('Hello')}, new[] {socketInstances}");

更多信息可以在

中找到,可能使用EvaluateFunctionAsync并在浏览器端使用javascript发送?以及如何使用可在js代码中使用的Puppeter获取WebSocket实例?