import { test } from '@playwright/test'; test('로그인 버튼 상태 확인', async ({ page }) => { console.log('\n╔════════════════════════════════════════════════════╗'); console.log('║ 로그인 버튼 상태 상세 확인 ║'); console.log('╚════════════════════════════════════════════════════╝\n'); await page.goto('http://localhost:5265/login'); await page.waitForLoadState('networkidle'); await page.waitForTimeout(2000); const loginButton = page.locator('button:has-text("로그인")'); console.log('1️⃣ 버튼 존재 여부:'); const count = await loginButton.count(); console.log(` 찾은 버튼 개수: ${count}`); if (count > 0) { console.log('\n2️⃣ 버튼 속성:'); const isVisible = await loginButton.isVisible(); console.log(` 시각성(isVisible): ${isVisible}`); const isEnabled = await loginButton.isEnabled(); console.log(` 활성화(isEnabled): ${isEnabled}`); const isDisabled = await loginButton.evaluate((el: any) => el.disabled); console.log(` Disabled 속성: ${isDisabled}`); const text = await loginButton.textContent(); console.log(` 버튼 텍스트: "${text}"`); const classList = await loginButton.evaluate((el: any) => Array.from(el.classList)); console.log(` CSS 클래스: ${classList.join(', ')}`); console.log('\n3️⃣ 버튼의 onclick 속성:'); const onclick = await loginButton.evaluate((el: any) => el.onclick); console.log(` onclick: ${onclick}`); console.log('\n4️⃣ 클릭 시도 (입력 필드 채운 후)...'); 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(' 입력 완료, 버튼 클릭 시도...'); // 다양한 클릭 방법 시도 try { await loginButton.click({ timeout: 5000 }); console.log(' ✅ click() 성공'); } catch (e) { console.log(` ❌ click() 실패: ${e}`); } await page.waitForTimeout(2000); console.log('\n5️⃣ 최종 상태:'); console.log(` URL: ${page.url()}`); console.log(` 제목: ${await page.title()}`); } else { console.log('❌ 로그인 버튼을 찾을 수 없습니다!'); } // 페이지 HTML 구조 확인 console.log('\n6️⃣ 전체 버튼 목록:'); const allButtons = page.locator('button'); const buttonCount = await allButtons.count(); console.log(` 총 버튼 개수: ${buttonCount}`); for (let i = 0; i < Math.min(buttonCount, 5); i++) { const btn = allButtons.nth(i); const btnText = await btn.textContent(); console.log(` [${i}] ${btnText?.trim()}`); } });