| 1234567891011121314151617181920212223242526272829303132333435 |
- 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 } });
- const errors = [];
- page.on('pageerror', error => errors.push(error.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-restore-test', { waitUntil: 'load' });
- const image = fs.readFileSync('C:/Users/miao/Downloads/494f54100a93c5a6e0c90f404c597514.jpeg').toString('base64');
- await page.evaluate(data => {
- qUploadedDrawing = { name: 'restore-test.jpeg', size: data.length, type: 'image/jpeg' };
- qUploadedDrawingUrl = 'data:image/jpeg;base64,' + data;
- qUploadedDrawingDataUrl = qUploadedDrawingUrl;
- qStartAnalysis();
- }, image);
- await page.waitForTimeout(600);
- await page.evaluate(() => {
- document.querySelectorAll('.q-furniture-tool').forEach(tool => { tool.ondragstart = null; tool.onclick = null; });
- const workspace = document.getElementById('q-floorplan-layout-workspace');
- workspace.ondrop = null; workspace.ondragover = null;
- qStartAnalysis();
- });
- await page.waitForTimeout(100);
- const tool = page.locator('.q-furniture-tool').filter({ hasText: '玄关柜' }).first();
- 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 * .45, y: drawingBox.y - workspaceBox.y + drawingBox.height * .55 } });
- await page.waitForTimeout(200);
- const placed = await page.evaluate(() => ({ count: qFurnitureLayout.length, type: qFurnitureLayout[0] && qFurnitureLayout[0].type, visible: document.querySelectorAll('.q-furniture-v3').length }));
- console.log(JSON.stringify({ placed, errors }));
- await browser.close();
- })().catch(error => { console.error(error); process.exit(1); });
|