modal-close.mjs (1522B)
1 // Les dialogues s'ouvrent ET se ferment (croix) : Programmes, Exelmémoire, Disquette ; fermés = invisibles. 2 // node test/modal-close.mjs [base-url] 3 import { open, sleep } from './cdp.mjs'; 4 const base = process.argv[2] ?? 'http://127.0.0.1:8196'; 5 const page = await open(base + '/', { width: 900, height: 900 }); 6 await sleep(6000); 7 const vis = (id) => page.evaluate(`(() => { const d = document.getElementById(${JSON.stringify(id)}); const r = d.getBoundingClientRect(); return { open: d.open, visible: getComputedStyle(d).display !== 'none' && r.height > 0 }; })()`); 8 console.log('au départ :', JSON.stringify({ programmes: await vis('modal'), exelmem: await vis('cram-modal'), disque: await vis('disk-modal') })); 9 await page.evaluate("document.getElementById('pick').click()"); await sleep(300); 10 const o1 = await vis('modal'); 11 await page.evaluate("document.querySelector('#modal .x').click()"); await sleep(300); 12 const c1 = await vis('modal'); 13 await page.evaluate("document.getElementById('cram-open').click()"); await sleep(300); 14 const o2 = await vis('cram-modal'); 15 await page.evaluate("document.getElementById('cram-modal-close').click()"); await sleep(300); 16 const c2 = await vis('cram-modal'); 17 console.log('Programmes ouverte/fermée :', JSON.stringify(o1), JSON.stringify(c1)); 18 console.log('Exelmémoire ouverte/fermée :', JSON.stringify(o2), JSON.stringify(c2)); 19 const ok = o1.visible && !c1.visible && o2.visible && !c2.visible; 20 console.log(ok ? 'OK : les dialogues se ferment' : 'PROBLÈME'); 21 page.close();