import { chromium } from '@playwright/test'; const browser = await chromium.launch(); const page = await browser.newPage(); try { console.log('πŸ§ͺ μ΅œμ’… ν…ŒμŠ€νŠΈ: Settings νŽ˜μ΄μ§€ λ‘œλ”© 인디케이터'); 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$/); console.log('βœ… 둜그인 성곡'); // Settings νŽ˜μ΄μ§€λ‘œ 이동 console.log('πŸ“ Settings νŽ˜μ΄μ§€λ‘œ 이동...'); await page.goto('http://178.104.200.7/taxbaik/admin/settings', { waitUntil: 'domcontentloaded' }); // λ‘œλ”© 인디케이터 μƒνƒœ 확인 console.log(''); console.log('⏱️ λ‘œλ”© μƒνƒœ λͺ¨λ‹ˆν„°λ§:'); for (let i = 1; i <= 5; i++) { await page.waitForTimeout(500); const loadingVisible = await page.locator('#blazor-loading.show').isVisible().catch(() => false); const mudCount = await page.locator('[class*="mud-"]').count(); const formElements = await page.locator('input, .admin-section-header').count(); console.log(` ${i}초: Loading=${loadingVisible ? 'λ³΄μž„' : 'μ•ˆλ³΄μž„'}, Mud=${mudCount}, Form=${formElements}`); if (!loadingVisible && mudCount > 20) { console.log(''); console.log('βœ… λ‘œλ”© 인디케이터 정상 μž‘λ™!'); console.log(' β†’ νŽ˜μ΄μ§€ λ‘œλ“œ 쀑: μŠ€ν”Όλ„ˆ ν‘œμ‹œ'); console.log(' β†’ νŽ˜μ΄μ§€ μ™„λ£Œ: μŠ€ν”Όλ„ˆ μˆ¨κΉ€'); break; } } // μŠ€ν¬λ¦°μƒ· await page.screenshot({ path: 'settings-final.png' }); console.log('βœ… μŠ€ν¬λ¦°μƒ· μ €μž₯: settings-final.png'); } catch (error) { console.error('❌ 였λ₯˜:', error.message); } await browser.close();