const { chromium } = require('playwright'); async function testPageAccess() { console.log('🚀 启动页面访问测试'); const browser = await chromium.launch({ headless: false }); const page = await browser.newPage(); try { // 1. 访问首页 console.log('📍 访问首页: http://localhost:8890'); await page.goto('http://localhost:8890'); await page.waitForLoadState('networkidle'); // 2. 截图查看当前状态 await page.screenshot({ path: 'current-page-state.png' }); console.log('📸 页面截图已保存: current-page-state.png'); // 3. 检查页面标题 const title = await page.title(); console.log('📄 页面标题:', title); // 4. 检查是否需要登录 const loginForm = await page.locator('form').count(); const loginButton = await page.locator('button:has-text("登录"), button:has-text("Login")').count(); console.log('🔐 登录表单数量:', loginForm); console.log('🔐 登录按钮数量:', loginButton); if (loginButton > 0) { console.log('ℹ️ 需要登录,尝试使用默认凭据...'); // 查找用户名输入框 const usernameInput = page.locator('input[type="text"], input[placeholder*="用户"], input[placeholder*="账号"]').first(); if (await usernameInput.isVisible()) { await usernameInput.fill('admin'); console.log('✅ 用户名已填写'); } // 查找密码输入框 const passwordInput = page.locator('input[type="password"]').first(); if (await passwordInput.isVisible()) { await passwordInput.fill('111111'); console.log('✅ 密码已填写'); } // 点击登录按钮 const loginBtn = page.locator('button:has-text("登录"), button:has-text("Login")').first(); if (await loginBtn.isVisible()) { await loginBtn.click(); console.log('✅ 点击登录按钮'); // 等待登录完成 await page.waitForTimeout(3000); await page.waitForLoadState('networkidle'); } } // 5. 登录后截图 await page.screenshot({ path: 'after-login-state.png' }); console.log('📸 登录后截图已保存: after-login-state.png'); // 6. 检查是否有菜单 const menuElements = await page.locator('.ivu-menu, .menu, [class*="menu"]').count(); console.log('📋 菜单元素数量:', menuElements); if (menuElements > 0) { console.log('✅ 发现菜单,查找账号管理...'); // 查找账号管理菜单 const accountMenu = page.locator('text=账号管理, text=Account').first(); if (await accountMenu.isVisible()) { console.log('✅ 找到账号管理菜单'); await accountMenu.click(); await page.waitForTimeout(1000); // 查找统一注册系统 const unifiedMenu = page.locator('text=统一注册系统, text=Unified Register').first(); if (await unifiedMenu.isVisible()) { console.log('✅ 找到统一注册系统菜单'); await unifiedMenu.click(); await page.waitForTimeout(2000); // 检查页面URL const currentURL = page.url(); console.log('🔗 当前URL:', currentURL); if (currentURL.includes('unifiedRegister')) { console.log('🎉 成功访问统一注册系统页面!'); // 最终截图 await page.screenshot({ path: 'unified-register-page.png' }); console.log('📸 统一注册页面截图已保存: unified-register-page.png'); // 检查页面元素 const pageTitle = await page.locator('h1, h2, h3').first().textContent(); console.log('📋 页面标题:', pageTitle); const strategySections = await page.locator('text=批量注册, text=连续注册').count(); console.log('⚙️ 策略选项数量:', strategySections); } else { console.log('❌ 未跳转到统一注册系统页面'); } } else { console.log('❌ 未找到统一注册系统菜单'); } } else { console.log('❌ 未找到账号管理菜单'); } } else { console.log('❌ 未发现菜单元素'); } } catch (error) { console.error('❌ 测试过程中出现错误:', error.message); await page.screenshot({ path: 'error-state.png' }); } finally { await browser.close(); console.log('🏁 测试完成'); } } testPageAccess().catch(console.error);