Puppeter-如何迭代查询对象以收集WebSocket对象的url?

Puppeter-如何迭代查询对象以收集WebSocket对象的url?,websocket,puppeteer,google-chrome-headless,headless-browser,Websocket,Puppeteer,Google Chrome Headless,Headless Browser,我正在Node.js模块中使用Puppeter。我检索一个带有QueryObject的WebSocket对象原型,需要提取url属性 // Get a handle to the websocket object prototype const prototypeHandle = await page.evaluateHandle(() => WebSocket.prototype); // Query all websocket instanc

我正在Node.js模块中使用Puppeter。我检索一个带有QueryObject的WebSocket对象原型,需要提取url属性

    // Get a handle to the websocket object prototype
    
    const prototypeHandle = await page.evaluateHandle(() => WebSocket.prototype);
    
    // Query all websocket instances into a jsHandle object
    
    const jsHandle = await page.queryObjects(prototypeHandle);
    
    // Count amount of map objects in heap
    
    // const count = await page.evaluate(maps => maps.length, jsHandle); // returns the expected amount (x2)

    // How to iterate through jsHandle to collect the url of each websockets

    await jsHandle.dispose();
    await prototypeHandle.dispose();

您不会得到任何响应,因为WebSocket不是一个简单的JSON对象,当您使用page.evaluate进行求值时,可以将其字符串化并返回给您

要获取页面中连接的websocket的URL,可以映射收集的websocket实例/对象,并从中提取URL

const browser=wait puppeter.launch();
常量页面=(等待browser.pages())[0];
//为测试目的创建虚拟websocket连接
等待页面。评估(()=>新WebSocket('wss://echo.websocket.org/'));
const wsPrototypeHandle=wait page.evaluateHandle(
()=>WebSocket.prototype
);
const wsInstances=wait page.queryObjects(wsPrototypeHandle);
const wsUrls=wait page.evaluate(

(e) =>e.map((e)=>e['url']),//您不会得到任何响应,因为WebSocket不是一个简单的JSON对象,当您使用page.evaluate进行求值时,可以将其字符串化并返回给您

要获取页面中连接的websocket的URL,可以映射收集的websocket实例/对象,并从中提取URL

const browser=wait puppeter.launch();
常量页面=(等待browser.pages())[0];
//为测试目的创建虚拟websocket连接
等待页面。评估(()=>新WebSocket('wss://echo.websocket.org/'));
const wsPrototypeHandle=wait page.evaluateHandle(
()=>WebSocket.prototype
);
const wsInstances=wait page.queryObjects(wsPrototypeHandle);
const wsUrls=wait page.evaluate(
(e) =>e.map((e)=>e['url'])//
[ 'wss://echo.websocket.org/' ]