const { chromium } = require('playwright'); async function inspectStructure() { const browser = await chromium.launch(); const page = await browser.newPage(); console.log('\n=== INSPECTING OLD SITE (localhost:3000) ===\n'); await page.goto('http://localhost:3000', { waitUntil: 'networkidle' }); // Get all class names const classes = await page.evaluate(() => { const allElements = document.querySelectorAll('*'); const classSet = new Set(); allElements.forEach(el => { if (el.className && typeof el.className === 'string') { el.className.split(' ').forEach(cls => { if (cls.trim()) classSet.add(cls.trim()); }); } }); return Array.from(classSet).sort(); }); console.log('All classes found:'); console.log(classes.filter(c => c.includes('badge') || c.includes('title') || c.includes('cv') || c.includes('sidebar')).join('\n')); // Get main structure const structure = await page.evaluate(() => { const getStructure = (el, depth = 0) => { if (depth > 3) return null; const tag = el.tagName.toLowerCase(); const classes = el.className || ''; const id = el.id || ''; return { tag, classes, id, children: Array.from(el.children).map(child => getStructure(child, depth + 1)).filter(Boolean) }; }; return getStructure(document.body); }); console.log('\n\nMain structure:'); console.log(JSON.stringify(structure, null, 2).substring(0, 5000)); // Find elements with "badge" or "title" in their classes const badgeElements = await page.$$eval('[class*="badge"], [class*="title"]', elements => elements.slice(0, 20).map(el => ({ tag: el.tagName, class: el.className, text: el.textContent?.substring(0, 100), computedStyles: (() => { const computed = window.getComputedStyle(el); return { fontSize: computed.fontSize, fontWeight: computed.fontWeight, color: computed.color, backgroundColor: computed.backgroundColor, padding: computed.padding, height: computed.height }; })() })) ); console.log('\n\nBadge/Title elements:'); console.log(JSON.stringify(badgeElements, null, 2)); console.log('\n\n=== INSPECTING NEW SITE (localhost:1999) ===\n'); await page.goto('http://localhost:1999', { waitUntil: 'networkidle' }); const newBadgeElements = await page.$$eval('[class*="badge"], [class*="title"]', elements => elements.slice(0, 20).map(el => ({ tag: el.tagName, class: el.className, text: el.textContent?.substring(0, 100), computedStyles: (() => { const computed = window.getComputedStyle(el); return { fontSize: computed.fontSize, fontWeight: computed.fontWeight, color: computed.color, backgroundColor: computed.backgroundColor, padding: computed.padding, height: computed.height }; })() })) ); console.log('Badge/Title elements:'); console.log(JSON.stringify(newBadgeElements, null, 2)); await browser.close(); } inspectStructure().catch(console.error);