exl100

Émulateur Exelvision EXL 100 (1984) dans le navigateur : dsp-cpp en WebAssembly, cartouches et cassettes BASIC
git clone https://git.schurger.org/exl100.git
Log | Files | Refs | README

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();