chore: 生成记录功能遗留产物提交与远程仓库迁移
- pillow>=12.3.0 依赖入库(支撑 AI 生成图持久化处理) - e2e 辅助脚本: _e2e_opt/_e2e_upload/_rec_ui - 巡检/审计/多结果/记录抽屉测试截图归档 shots/ - 远程仓库迁移至 git.djxx.club/hanzhicheng/menchuang
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import puppeteer from 'puppeteer-core'
|
||||
import path from 'path'
|
||||
const browser = await puppeteer.launch({
|
||||
executablePath: 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',
|
||||
headless: 'new', args: ['--window-size=1440,900', '--enable-unsafe-swiftshader'],
|
||||
defaultViewport: { width: 1440, height: 900 },
|
||||
})
|
||||
const page = await browser.newPage()
|
||||
const errs = []
|
||||
page.on('pageerror', e => errs.push(String(e).slice(0, 120)))
|
||||
const token = process.argv[2]
|
||||
const sketch = process.argv[3]
|
||||
await page.goto(`http://localhost:8000/ai_render?token=${encodeURIComponent(token)}`, { waitUntil: 'networkidle2' })
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
await page.evaluate(() => {
|
||||
[...document.querySelectorAll('.el-radio-button')].find(b => b.textContent.includes('工程大样图'))?.querySelector('input')?.click()
|
||||
})
|
||||
await new Promise(r => setTimeout(r, 800))
|
||||
// 1) 上传草图
|
||||
const input = await page.$('.el-upload input[type=file]')
|
||||
await input.uploadFile(path.resolve(sketch))
|
||||
await new Promise(r => setTimeout(r, 1500))
|
||||
await page.screenshot({ path: '../shots/opt-1-upload.png' })
|
||||
// 2) 旋转 90°(验证转正)
|
||||
await page.evaluate(() => {
|
||||
const btn = [...document.querySelectorAll('.el-dialog button, button')].find(b => b.textContent.includes('↻ 旋转'))
|
||||
btn?.click()
|
||||
})
|
||||
await new Promise(r => setTimeout(r, 800))
|
||||
await page.screenshot({ path: '../shots/opt-2-rot.png' })
|
||||
// 3) 框选左上窗区域(canvas 显示坐标前 1/3)
|
||||
const box = await page.evaluate(() => {
|
||||
const cv = document.querySelector('.bp-cv')
|
||||
if (!cv) return null
|
||||
const b = cv.getBoundingClientRect()
|
||||
return { x: b.x, y: b.y, w: b.width, h: b.height }
|
||||
})
|
||||
if (!box) { console.log('无草图 canvas'); process.exit(1) }
|
||||
await page.mouse.move(box.x + box.w * 0.05, box.y + box.h * 0.05)
|
||||
await page.mouse.down()
|
||||
await page.mouse.move(box.x + box.w * 0.42, box.y + box.h * 0.95, { steps: 8 })
|
||||
await page.mouse.up()
|
||||
await new Promise(r => setTimeout(r, 600))
|
||||
await page.screenshot({ path: '../shots/opt-3-crop.png' })
|
||||
// 4) 生成(框选生效→裁剪底图)
|
||||
await page.evaluate(() => {
|
||||
[...document.querySelectorAll('button')].find(b => b.textContent.includes('AI 生成大样图'))?.click()
|
||||
})
|
||||
let done = false
|
||||
for (let i = 0; i < 110; i++) {
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
done = await page.evaluate(() => {
|
||||
const cmp = document.querySelector('.bp-compare')
|
||||
return !!(cmp && cmp.querySelectorAll('img').length >= 2)
|
||||
})
|
||||
if (done) break
|
||||
}
|
||||
await new Promise(r => setTimeout(r, 800))
|
||||
await page.screenshot({ path: '../shots/opt-4-result.png' })
|
||||
console.log(done ? '全流程成功(上传→旋转→框选→生成→并排对比)' : '超时', '| 异常:', errs.length ? errs.join('|') : '无')
|
||||
await browser.close()
|
||||
@@ -0,0 +1,23 @@
|
||||
import puppeteer from 'puppeteer-core'
|
||||
import path from 'path'
|
||||
const browser = await puppeteer.launch({
|
||||
executablePath: 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',
|
||||
headless: 'new', args: ['--window-size=1440,900', '--enable-unsafe-swiftshader'],
|
||||
defaultViewport: { width: 1440, height: 900 },
|
||||
})
|
||||
const page = await browser.newPage()
|
||||
const token = process.argv[2]
|
||||
const sketch = process.argv[3]
|
||||
await page.goto(`http://localhost:8000/ai_render?token=${encodeURIComponent(token)}`, { waitUntil: 'networkidle2' })
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
await page.evaluate(() => {
|
||||
[...document.querySelectorAll('.el-radio-button')].find(b => b.textContent.includes('工程大样图'))?.querySelector('input')?.click()
|
||||
})
|
||||
await new Promise(r => setTimeout(r, 1000))
|
||||
// 上传草图
|
||||
const input = await page.$('.el-upload input[type=file]')
|
||||
await input.uploadFile(path.resolve(sketch))
|
||||
await new Promise(r => setTimeout(r, 1500))
|
||||
await page.screenshot({ path: '../shots/bp-upload.png' })
|
||||
console.log('上传预览截图完成')
|
||||
await browser.close()
|
||||
@@ -0,0 +1,34 @@
|
||||
import puppeteer from 'puppeteer-core'
|
||||
import path from 'path'
|
||||
const browser = await puppeteer.launch({
|
||||
executablePath: 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe',
|
||||
headless: 'new', args: ['--window-size=1440,900', '--enable-unsafe-swiftshader'],
|
||||
defaultViewport: { width: 1440, height: 900 },
|
||||
})
|
||||
const page = await browser.newPage()
|
||||
const errs = []
|
||||
page.on('pageerror', e => errs.push(String(e).slice(0, 120)))
|
||||
const token = process.argv[2]
|
||||
const sketch = process.argv[3]
|
||||
await page.goto(`http://localhost:8000/ai_render?token=${encodeURIComponent(token)}`, { waitUntil: 'networkidle2' })
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
await page.evaluate(() => {
|
||||
[...document.querySelectorAll('.el-radio-button')].find(b => b.textContent.includes('工程大样图'))?.querySelector('input')?.click()
|
||||
})
|
||||
await new Promise(r => setTimeout(r, 800))
|
||||
const input = await page.$('.el-upload input[type=file]')
|
||||
await input.uploadFile(path.resolve(sketch))
|
||||
await new Promise(r => setTimeout(r, 1200))
|
||||
await page.evaluate(() => { [...document.querySelectorAll('button')].find(b => b.textContent.includes('AI 生成大样图'))?.click() })
|
||||
let done = false
|
||||
for (let i = 0; i < 110; i++) {
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
done = await page.evaluate(() => !!document.querySelector('.bp-compare'))
|
||||
if (done) break
|
||||
}
|
||||
// 打开生成记录抽屉
|
||||
await page.evaluate(() => { [...document.querySelectorAll('button')].find(b => b.textContent.includes('生成记录'))?.click() })
|
||||
await new Promise(r => setTimeout(r, 2000))
|
||||
await page.screenshot({ path: '../shots/rec-drawer.png' })
|
||||
console.log(done ? '生成+记录抽屉 OK' : '生成超时', '| 异常:', errs.length ? errs.join('|') : '无')
|
||||
await browser.close()
|
||||
Reference in New Issue
Block a user