// 拖拽移动验证: node scripts/drag-verify.mjs import puppeteer from 'puppeteer-core' const EDGE = 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe' const token = process.argv[2] const browser = await puppeteer.launch({ executablePath: EDGE, headless: 'new', args: ['--window-size=1440,900', '--enable-unsafe-swiftshader', '--use-gl=angle', '--use-angle=swiftshader'], defaultViewport: { width: 1440, height: 900 }, }) const page = await browser.newPage() await page.goto(`http://localhost:8000/combine?token=${encodeURIComponent(token)}`, { waitUntil: 'networkidle2' }) await page.waitForSelector('.lib-item') await page.click('.lib-item') await new Promise(r => setTimeout(r, 600)) const box = await (await page.$('.canvas-box')).boundingBox() const cx = box.x + box.width / 2, cy = box.y + box.height / 2 // 读取当前单元位置(通过画布标注无法直接读, 用截图对比 + __ccDebug) const before = await page.evaluate(() => window.__ccDebug.getSelected()) // 真实拖拽: 按下 → 分步移动 → 松开 await page.mouse.move(cx, cy) await page.mouse.down() for (let i = 1; i <= 10; i++) { await page.mouse.move(cx + i * 15, cy - i * 8) await new Promise(r => setTimeout(r, 30)) } await page.mouse.up() await new Promise(r => setTimeout(r, 400)) const after = await page.evaluate(() => window.__ccDebug.getSelected()) await page.screenshot({ path: 'D:/Code/huamenchuang/shots/drag-after.png' }) console.log('拖拽前选中:', before, '| 拖拽后选中:', after) console.log('拖拽流程完成(若单元移动, 截图可见)') await browser.close()