| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /** 诊断:运行监测模式下,台账分页按钮与异常设备定位入口的真实 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()
|