| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- let puppeteer = false;
- try{
- puppeteer = require('puppeteer');
- }
- catch(err)
- {
- console.log('To use the debugging function, you need to install the puppeteer module through "npm install puppeteer" command.');
- process.exit();
- }
- const { spawn, fork } = require('child_process');
- let n = 2;
- let entry_js = process.argv[n]; ++n;
- let form_name = process.argv[n]; ++n;
- let resource = process.argv[n]; ++n;
- let x = process.argv[n]; ++n;
- let y = process.argv[n]; ++n;
- let w = process.argv[n]; ++n;
- let h = process.argv[n]; ++n;
- let cp = spawn('node', ['--inspect-brk', entry_js, form_name, resource]);
- let g_first = true;
- let g_output = '';
- cp.stderr.on('data', data=>{
- if(data.toString() === '') return;
- g_output += data;
- if(data.toString().indexOf('Debugger attached') !== -1)
- {
- process.send('ready');
- }
- if(g_output.indexOf('For help, see: https://nodejs.org/en/docs/inspector') !== -1)
- {
- if(g_first)
- {
- g_first = false;
- let uuid = false;
- const match = g_output.match(/ws:\/\/[^/]+\/([\w-]+)/);
- if(match)uuid = match[1];
- if(!uuid) process.exit();
- (async () => {
- const browser = await puppeteer.launch({
- ignoreHTTPSErrors : true,
- headless: false, // 确保可视化模式
- args: [
- '--no-sandbox',
- '--disable-infobars',
- `--window-size=${w},${h}`,
- `--window-position=${x},${y}`
- //`--window-size=1024,720`,
- //`--window-position=328,144`
- //'--start-maximized'
- ]
- });
- cp.on('close', function(code){
- browser.close();
- });
-
- // 获取默认页面(浏览器启动时的初始标签页)[[13, 20]]
- const pages = await browser.pages();
- const defaultPage = pages[0]; // 默认页面是页面列表的第一个元素
-
- await defaultPage.goto('chrome://inspect', {
- waitUntil: 'domcontentloaded' // 确保DOM就绪
-
- }); // 使用默认页面导航[[10, 13]]
- await defaultPage.waitForSelector('#node-frontend'); // 确保按钮加载完成
- await defaultPage.click('#node-frontend'); // 点击按钮
- defaultPage.close();
- })();
- }
- }
- });
|