import { chromium } from '@playwright/test'; const browser = await chromium.launch(); const page = await browser.newPage(); try { // 1. 둜그인 console.log('πŸ”“ 둜그인 쀑...'); await page.goto('http://178.104.200.7/taxbaik/admin/login', { waitUntil: 'networkidle' }); await page.fill('input[placeholder="μ‚¬μš©μžλͺ…"]', 'test_admin'); await page.fill('input[placeholder="λΉ„λ°€λ²ˆν˜Έ"]', 'TestAdmin@123456'); await page.click('button:has-text("둜그인")'); await page.waitForURL(/\/taxbaik\/admin\/dashboard$/, { timeout: 10000 }); console.log('βœ… 둜그인 성곡'); // 2. Settings νŽ˜μ΄μ§€λ‘œ 이동 console.log('\nπŸ“ Settings νŽ˜μ΄μ§€λ‘œ 이동...'); await page.goto('http://178.104.200.7/taxbaik/admin/settings', { waitUntil: 'domcontentloaded' }); // 3. λ‹€μ–‘ν•œ λŒ€κΈ° μ „λž΅ μ‹œλ„ console.log('⏳ νŽ˜μ΄μ§€ λ‘œλ“œ λŒ€κΈ° 쀑...'); for (let i = 1; i <= 5; i++) { await page.waitForTimeout(1000); const title = await page.locator('h4:has-text("μ„€μ •")').count(); const body = await page.locator('body').evaluate(el => el.innerHTML.length); const mudComponents = await page.locator('[class*="mud-"]').count(); console.log(`μ‹œλ„ ${i}: body=${body}bytes, mud=${mudComponents}, title=${title}`); if (mudComponents > 10 && body > 5000) { console.log('βœ… νŽ˜μ΄μ§€ λ Œλ”λ§ 감지됨!'); break; } } // 4. μ΅œμ’… μƒνƒœ 확인 console.log('\nπŸ“Š μ΅œμ’… μƒνƒœ:'); const hasContent = await page.locator('body').evaluate(el => el.innerText.length > 100); const hasComponents = await page.locator('[class*="mud-"]').count(); console.log(`- ν…μŠ€νŠΈ μ½˜ν…μΈ : ${hasContent ? '있음' : 'μ—†μŒ'}`); console.log(`- MudBlazor μ»΄ν¬λ„ŒνŠΈ: ${hasComponents}개`); if (!hasContent) { console.log('\n❌ Settings νŽ˜μ΄μ§€ λ Œλ”λ§ μ‹€νŒ¨'); console.log('HTML μŠ€λ‹ˆνŽ«:'); const html = await page.content(); const bodyMatch = html.match(/]*>([\s\S]{0,500})/); if (bodyMatch) console.log(bodyMatch[1]); } } catch (error) { console.error('❌ μ—λŸ¬:', error.message); } await browser.close();