const { chromium } = require('playwright'); const fs = require('fs'); (async () => { const browser = await chromium.launch({ headless: true, executablePath: 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe' }); const page = await browser.newPage({ viewport: { width: 1400, height: 1000 } }); page.on('console', m => console.log('console:', m.type(), m.text())); page.on('pageerror', e => console.log('pageerror:', e.message)); await page.goto('http://127.0.0.1:8931/AI%E5%BF%AB%E9%80%9F%E6%8A%A5%E4%BB%B7_Demo2.html?v=drag-debug', { waitUntil: 'load' }); const image = fs.readFileSync('C:/Users/miao/Downloads/494f54100a93c5a6e0c90f404c597514.jpeg').toString('base64'); await page.evaluate(data => { qUploadedDrawing = { name: 'debug.jpeg', size: data.length, type: 'image/jpeg' }; qUploadedDrawingUrl = 'data:image/jpeg;base64,' + data; qUploadedDrawingDataUrl = qUploadedDrawingUrl; qStartAnalysis(); }, image); await page.waitForTimeout(800); console.log('tools:', await page.locator('.q-furniture-tool').count()); console.log('drawingVisible:', await page.locator('#q-ai-cleaned-img').isVisible()); await page.locator('.q-furniture-tool').first().click(); await page.waitForTimeout(300); console.log('afterClick:', await page.locator('.q-furniture-v3').count()); const tool = page.locator('.q-furniture-tool').nth(1); const drawing = page.locator('#q-ai-cleaned-img'); const workspace = page.locator('#q-floorplan-layout-workspace'); const drawingBox = await drawing.boundingBox(); const workspaceBox = await workspace.boundingBox(); await tool.dragTo(workspace, { targetPosition: { x: drawingBox.x - workspaceBox.x + drawingBox.width / 2, y: drawingBox.y - workspaceBox.y + drawingBox.height / 2 } }); await page.waitForTimeout(300); console.log('afterDrag:', await page.locator('.q-furniture-v3').count()); console.log('layoutState:', await page.evaluate(() => qFurnitureLayout)); await page.screenshot({ path: 'C:/Users/miao/Documents/数夫中间表数据抓取/debug-furniture-result.png', fullPage: true }); await browser.close(); })().catch(e => { console.error(e); process.exit(1); });