mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-08 14:34:13 +08:00
45 lines
928 B
JavaScript
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,
|
|
};
|