/** 诊断:运行监测模式下,台账分页按钮与异常设备定位入口的真实 DOM 状态。 */ import { cdpLaunch } from '../../../../cockpit-shell-panel-layout/verify/cdp-driver.mjs' const CHROME = process.env.CHROME_PATH || 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' const sleep = (ms) => new Promise((r) => setTimeout(r, ms)) const browser = await cdpLaunch({ executablePath: CHROME, headless: true, width: 1680, height: 950 }) const page = await browser.newPage() await page.goto('http://127.0.0.1:8000/#/cockpit', { timeout: 60000 }) await sleep(2000) await page.click('[data-cockpit-intro]').catch(() => {}) await page.waitForFunction(() => ['ready', 'failed', 'disabled'].includes(document.querySelector('.cockpit-shell__map .map-canvas')?.dataset.mapEngine || ''), { timeout: 60000 }) await page.evaluate(() => { [...document.querySelectorAll('button')].find((b) => b.textContent.trim() === '运行监测')?.click() }) await sleep(3000) const info = await page.evaluate(() => { const more = document.querySelector('[data-ledger-more]') const locate = [...document.querySelectorAll('[data-locate-point]')].map((n) => n.dataset.locatePoint) const cards = [...document.querySelectorAll('[data-ledger-card]')].map((n) => n.dataset.ledgerCard) const panelIds = [...document.querySelectorAll('[data-panel-id]')].map((n) => n.dataset.panelId) return { hasMoreBtn: !!more, moreText: more?.textContent?.trim() || '', cards, locateCodes: locate.slice(0, 20), panelIds, ledgerNotes: [...document.querySelectorAll('[data-panel-page-note]')].map((n) => n.textContent.trim()), } }) console.log(JSON.stringify(info, null, 2)) // 试一次:点异常设备定位入口(21119740)看能否直接开设备级详情 const clicked = await page.evaluate(() => { const btn = [...document.querySelectorAll('[data-locate-point]')].find((n) => n.dataset.locatePoint === '21119740') if (!btn) return 'no-button' btn.click() return 'clicked' }) await sleep(4000) const after = await page.evaluate(() => { const card = document.querySelector('[data-point-detail]') return { clicked: card ? card.dataset.detailLevel : '(none)', device: card?.dataset.deviceCode || '', point: card?.dataset.pointCode || '' } }) console.log('locate 21119740:', clicked, JSON.stringify(after)) await browser.close()