modal-scroll.mjs (1321B)
1 // La modale Disquette défile elle-même et ne fait pas défiler la page derrière. 2 // node test/modal-scroll.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: 700 }); 6 await page.evaluate('location.reload()'); 7 await sleep(7000); 8 await page.evaluate(`[...document.querySelectorAll('.pg')].find((b) => b.dataset.type === 'disk' && b.dataset.search.includes('loadrun')).click()`); 9 await sleep(2500); 10 const before = await page.evaluate("({ open: document.getElementById('disk-modal').open, pageY: scrollY, bodyTop: document.querySelector('#disk-modal .cram-body').scrollTop, bodyH: document.querySelector('#disk-modal .cram-body').clientHeight, scrollH: document.querySelector('#disk-modal .cram-body').scrollHeight })"); 11 console.log('avant :', JSON.stringify(before)); 12 await page.send('Input.dispatchMouseEvent', { type: 'mouseWheel', x: 450, y: 400, deltaX: 0, deltaY: 600 }); 13 await sleep(600); 14 const after = await page.evaluate("({ pageY: scrollY, bodyTop: document.querySelector('#disk-modal .cram-body').scrollTop })"); 15 console.log('après molette :', JSON.stringify(after), after.bodyTop > 0 && after.pageY === before.pageY ? '=> la modale défile, pas la page' : '=> PROBLÈME'); 16 page.close();