import puppeteer from 'puppeteer'; const b = await puppeteer.launch({ args:['--no-sandbox','--disable-setuid-sandbox','--use-gl=angle','--enable-unsafe-swiftshader','--ignore-gpu-blocklist'] }); const p = await b.newPage(); const logs=[]; p.on('console', m=>logs.push('['+m.type()+'] '+m.text())); await p.goto('http://10.200.201.3:4175/_lab/neu-card.html',{waitUntil:'load',timeout:60000}); await new Promise(r=>setTimeout(r,1000)); const r = await p.evaluate(()=>{ const m=document.querySelector('[data-shader-demo] .card-shader').paperShaderMount; const gl=m.gl; // проверим компиляцию шейдеров напрямую const vs=gl.getParameter(gl.VERTEX_SHADER); // считаем context lost const lost = gl.isContextLost(); // размер drawing buffer const dbw=gl.drawingBufferWidth, dbh=gl.drawingBufferHeight; return { contextLost: lost, dbW: dbw, dbH: dbh, glError: gl.getError() }; }); console.log('R', JSON.stringify(r)); console.log('LOGS:\n'+logs.slice(0,15).join('\n')); await b.close();