const { chromium } = require('playwright'); const fs = require('fs'); (async () => { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); const errs = []; page.on('pageerror', e => errs.push({ type: 'pageerror', msg: e.message })); page.on('console', m => { if (m.type() === 'error') errs.push({ type: 'console', msg: m.text() }); }); page.on('requestfailed', r => errs.push({ type: 'reqfail', url: r.url(), err: r.failure()?.errorText })); const results = []; for (const [name, url] of [ ['WTP', 'https://weval-consulting.com/weval-technology-platform.html'], ['Master', 'https://weval-consulting.com/wevia-master.html'] ]) { await page.goto(url, { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(4000); // allow defer scripts to run const info = await page.evaluate(() => { return { badgeEl: !!document.querySelector('#archi-meta-badge, [class*="archi-badge"]'), badgeScript: !!document.querySelector('script[src*="archi-meta-badge"]'), spotlightScript: !!document.querySelector('script[src*="archi-spotlight"]'), bodyHTMLSize: document.body.innerHTML.length, elementCount: document.querySelectorAll('*').length, hasArchiMeta: typeof window.archiMeta !== 'undefined', hasSpotlight: typeof window.archiSpotlight !== 'undefined' }; }); results.push({ name, url, ...info }); } fs.writeFileSync('/tmp/v90_badge_check.json', JSON.stringify({ results, errs }, null, 2)); for (const r of results) { console.log(`${r.name}: badgeEl=${r.badgeEl} badgeScript=${r.badgeScript} spotlightScript=${r.spotlightScript} archiMeta=${r.hasArchiMeta} elements=${r.elementCount}`); } console.log(`Errors: ${errs.length}`); for (const e of errs.slice(0, 5)) console.log(` [${e.type}] ${e.msg || e.url}`); await browser.close(); })();