35 lines
1.7 KiB
JavaScript
35 lines
1.7 KiB
JavaScript
let playwright
|
|
try { playwright = await import('playwright'); } catch (e) { console.error('Playwright no está instalado:', e); process.exit(2); }
|
|
const { chromium } = playwright;
|
|
(async ()=>{
|
|
const browser = await chromium.launch();
|
|
const page = await browser.newPage();
|
|
try{
|
|
console.log('Navegando a simulate.html...');
|
|
await page.goto('http://localhost:3021/simulate.html', { waitUntil: 'networkidle', timeout: 15000 });
|
|
console.log('Página cargada. Buscando botón Start...');
|
|
const btn = await page.waitForSelector('button#recBtn, button:has-text("Start")', { timeout: 5000 });
|
|
if(!btn) throw new Error('Botón de grabación no encontrado');
|
|
console.log('Haciendo click en Start...');
|
|
await btn.click();
|
|
// esperar a que la clase recording esté presente o a que el .record-dot sea visible
|
|
await page.waitForSelector('.btn-control.recording', { timeout: 5000 });
|
|
await page.waitForSelector('.record-dot', { timeout: 5000 });
|
|
console.log('Recording visuals present — tomando captura...');
|
|
await page.screenshot({ path: '/tmp/studio_record_test.png', fullPage: true });
|
|
console.log('Screenshot guardada en /tmp/studio_record_test.png');
|
|
// comprobar atributos
|
|
const attrs = await page.evaluate(()=>{
|
|
const btn = document.getElementById('recBtn');
|
|
return {
|
|
ariaPressed: btn?.getAttribute('aria-pressed'),
|
|
hasRecordingClass: btn?.classList.contains('recording'),
|
|
recordDotDisplay: window.getComputedStyle(btn?.querySelector('.record-dot') || document.createElement('span')).display
|
|
}
|
|
});
|
|
console.log('Atributos tras click:', JSON.stringify(attrs));
|
|
}catch(e){ console.error('Error durante la prueba:', e); process.exitCode = 2 }
|
|
await browser.close();
|
|
})();
|
|
|