31 lines
2.3 KiB
JavaScript
31 lines
2.3 KiB
JavaScript
import puppeteer from 'puppeteer-core'
|
|
const CHROME='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
|
|
const b=await puppeteer.launch({executablePath:CHROME,headless:'new',args:['--no-sandbox','--use-gl=swiftshader','--enable-unsafe-swiftshader','--window-size=1400,900']})
|
|
try{
|
|
const p=await b.newPage()
|
|
await p.setViewport({width:1400,height:900})
|
|
const errs=[]
|
|
p.on('pageerror',e=>errs.push('PAGEERR: '+e.message))
|
|
await p.goto('http://localhost:5173/',{waitUntil:'networkidle2',timeout:30000})
|
|
await new Promise(r=>setTimeout(r,2500))
|
|
const r=await p.evaluate(()=>({
|
|
groupTitles: [...document.querySelectorAll('.group-head')].map(e=>e.textContent.trim()),
|
|
hasDirectionModule: [...document.querySelectorAll('.group-head')].some(e=>e.textContent.includes('方向')),
|
|
shapeHasAngle: (()=>{const g=[...document.querySelectorAll('.group')].find(x=>x.querySelector('.group-head')?.textContent.includes('发射器形状'));const t=g?.querySelector('.group-body')?.textContent||'';return t.includes('角度°')&&t.includes('扩散°')})(),
|
|
emitHasBur: (()=>{const g=[...document.querySelectorAll('.group')].find(x=>x.querySelector('.group-head')?.textContent.includes('发射模式'));const t=g?.querySelector('.group-body')?.textContent||'';return t.includes('爆发')&&t.includes('持续')})(),
|
|
}))
|
|
// 点一下"发射器形状"折叠
|
|
await p.evaluate(()=>{const h=[...document.querySelectorAll('.group-head')].find(e=>e.textContent.includes('发射器形状'));h?.click()})
|
|
await new Promise(r=>setTimeout(r,300))
|
|
const collapsed=await p.evaluate(()=>{const g=[...document.querySelectorAll('.group')].find(x=>x.querySelector('.group-head')?.textContent.includes('发射器形状'));return {caret:g?.querySelector('.caret')?.textContent, visible: g? g.querySelector('.group-body')?.offsetParent ? true : false : '?'}})
|
|
await p.screenshot({path:'/tmp/panel-new.png'})
|
|
console.log('=== 分组标题 ===')
|
|
console.log(JSON.stringify(r.groupTitles,null,2))
|
|
console.log('方向独立模块?', r.hasDirectionModule)
|
|
console.log('形状组含角度/扩散?', r.shapeHasAngle)
|
|
console.log('发射模式组含持续/爆发?', r.emitHasBur)
|
|
console.log('折叠后:', JSON.stringify(collapsed))
|
|
console.log('=== 错误 ===')
|
|
console.log(errs.join('\n')||'(无)')
|
|
}finally{await b.close()}
|