const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); console.log('=== Testing Shinkan Login Page ===\n'); try { // Wait a bit for deployment console.log('Waiting 30 seconds for deployment...'); await new Promise(resolve => setTimeout(resolve, 30000)); await page.goto('http://192.168.2.49:3098', { waitUntil: 'networkidle', timeout: 10000 }); const title = await page.title(); console.log('šŸ“„ Title:', title); const h1 = await page.textContent('h1').catch(() => null); console.log('šŸ„‹ Heading:', h1); // Count elements const buttons = await page.locator('button').count(); const forms = await page.locator('form').count(); const inputs = await page.locator('input').count(); console.log('\nšŸ” Elements Found:'); console.log(' - Buttons:', buttons); console.log(' - Forms:', forms); console.log(' - Inputs:', inputs); // Get button texts if (buttons > 0) { console.log('\nšŸ”˜ Buttons:'); for (let i = 0; i < buttons; i++) { const text = await page.locator('button').nth(i).textContent(); console.log(` ${i + 1}. "${text}"`); } } // Get input placeholders if (inputs > 0) { console.log('\nšŸ“ Inputs:'); for (let i = 0; i < inputs; i++) { const placeholder = await page.locator('input').nth(i).getAttribute('placeholder'); const type = await page.locator('input').nth(i).getAttribute('type'); console.log(` ${i + 1}. Type: ${type}, Placeholder: "${placeholder}"`); } } await page.screenshot({ path: 'shinkan-login-screenshot.png', fullPage: true }); console.log('\nšŸ“ø Screenshot: shinkan-login-screenshot.png'); } catch (error) { console.error('āŒ Error:', error.message); } await browser.close(); })();