import { test } from '@playwright/test'; test('상세 디버깅 - onclick 확인', async ({ page }) => { console.log('\n╔════════════════════════════════════════════════════╗'); console.log('║ 상세 디버깅 - Blazor 상호작용 확인 ║'); console.log('╚════════════════════════════════════════════════════╝\n'); // 네트워크 추적 page.on('request', request => { console.log(`📤 [REQUEST] ${request.method()} ${request.url()}`); }); page.on('response', response => { console.log(`📥 [RESPONSE] ${response.status()} ${response.url()}`); }); // 콘솔 추적 page.on('console', msg => { if (msg.type() === 'log') { console.log(`🖨️ [LOG] ${msg.text()}`); } else if (msg.type() === 'error') { console.log(`❌ [ERROR] ${msg.text()}`); } }); console.log('1️⃣ 페이지 접근...'); await page.goto('http://localhost:5265/login'); await page.waitForLoadState('networkidle'); await page.waitForTimeout(2000); console.log('\n2️⃣ 버튼 onclick 핸들러 확인...'); const loginButton = page.locator('button:has-text("로그인")'); const onclickCheck = await loginButton.evaluate((el: any) => { console.log('Button element:', el); console.log('onclick:', el.onclick); console.log('data attributes:', Array.from(el.attributes).map((a: any) => `${a.name}=${a.value}`)); return { onclick: el.onclick, onclickString: el.onclick?.toString() || 'null', attributes: Array.from(el.attributes).map((a: any) => `${a.name}=${a.value}`), }; }); console.log(' onclick 확인 결과:'); console.log(` - onclick: ${onclickCheck.onclick}`); console.log(` - 속성 목록:`); onclickCheck.attributes.forEach((attr: string) => { console.log(` • ${attr}`); }); console.log('\n3️⃣ 입력 필드 확인...'); const usernameInput = page.locator('input[type="text"]').first(); const passwordInput = page.locator('input[type="password"]'); await usernameInput.fill('admin'); await passwordInput.fill('admin'); console.log(' 입력 완료'); console.log('\n4️⃣ 버튼 클릭...'); await loginButton.click(); console.log(' 클릭됨'); await page.waitForTimeout(3000); console.log('\n5️⃣ 최종 상태...'); const finalUrl = page.url(); console.log(` URL: ${finalUrl}`); // 버튼 상태 재확인 const isVisible = await loginButton.isVisible(); const isEnabled = await loginButton.isEnabled(); console.log(` 버튼 시각성: ${isVisible}, 활성화: ${isEnabled}`); });