2025-01-23 18:43:44 +08:00

45 lines
928 B
JavaScript

const CDP = require("chrome-remote-interface");
const { getCurrentClientPort } = require("./client");
const initCDP = async (targetId) => {
try {
const port = await getCurrentClientPort();
const client = await CDP({
target: targetId,
port,
});
const { Page, Runtime, Target, Network, Emulation, DOM } = client;
await Promise.all([Page.enable(), Runtime.enable(), DOM.enable()]);
return {
client,
Page,
Runtime,
Target,
Network,
Emulation,
DOM,
};
} catch (err) {
console.log(err);
throw new Error(`连接到浏览器失败: ${err.message}`);
}
};
const cleanupCDP = async (targetId) => {
try {
// 直接关闭传入的 client
if (targetId?.client) {
await targetId.client.close();
}
} catch (error) {
console.log("关闭CDP连接失败:", error);
}
};
module.exports = {
initCDP,
cleanupCDP,
};