| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- const puppeteer = require('puppeteer-core');
- const http = require('http');
- const fs = require('fs');
- const path = require('path');
- function startServer(root, port) {
- return new Promise(resolve => {
- const srv = http.createServer((req, res) => {
- let fp = path.join(root, decodeURIComponent(req.url.split('?')[0]));
- if (!fs.existsSync(fp) || fs.statSync(fp).isDirectory()) fp = path.join(root, 'index-v2.html');
- const ext = path.extname(fp).toLowerCase();
- const mime = { '.html':'text/html', '.js':'application/javascript', '.css':'text/css', '.png':'image/png', '.jpg':'image/jpeg' };
- try { res.writeHead(200, { 'Content-Type': mime[ext] || 'application/octet-stream' }); fs.createReadStream(fp).pipe(res); }
- catch(e) { res.writeHead(404); res.end(); }
- });
- srv.listen(port, () => resolve(srv));
- });
- }
- (async () => {
- const root = 'C:\\Users\\Administrator\\lab-safety-monitor';
- const port = 19527;
- const srv = await startServer(root, port);
- const browser = await puppeteer.launch({
- executablePath: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe',
- headless: 'new',
- args: ['--no-sandbox','--disable-setuid-sandbox','--window-size=9600,2800']
- });
- const page = await browser.newPage();
- await page.setViewport({ width: 9600, height: 2800, deviceScaleFactor: 1 });
- await page.goto(`http://localhost:${port}/index-v2.html`, { waitUntil: 'networkidle0', timeout: 30000 });
- await new Promise(r => setTimeout(r, 2000));
- // 关闭预警弹窗
- await page.evaluate(() => {
- const modal = document.getElementById('alert-modal');
- if (modal) modal.style.display = 'none';
- window.showAlert = () => {};
- });
- // 等待摄像头初始化
- await new Promise(r => setTimeout(r, 5000));
- await page.screenshot({ path: 'C:\\Users\\Administrator\\lab-safety-monitor\\design-preview.png', fullPage: true });
- console.log('Done');
- await browser.close();
- srv.close();
- })().catch(e => { console.error(e.message); process.exit(1); });
|