const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: false }); // 显示浏览器 const page = await browser.newPage(); console.log('=== 完整UI测试 ===\n'); try { // 1. 打开页面 console.log('1. 打开创建视频页面...'); await page.goto('http://localhost:5173/#/pages/video-generator/create', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(3000); await page.screenshot({ path: 'ui-test-1-loaded.png', fullPage: true }); console.log(' ✅ 页面已加载\n'); // 2. 检查所有关键元素 console.log('2. 检查页面元素:'); const checks = [ { name: '导航栏', selector: '.nav-bar' }, { name: '页面标题', selector: '.page-title' }, { name: '步骤导航', selector: '.step-nav' }, { name: '基本信息区域', selector: 'text=基本信息' }, { name: '视频标题标签', selector: 'text=视频标题' }, { name: '添加图片按钮', selector: 'text=添加图片' }, { name: '添加音频按钮', selector: 'text=添加音频' }, { name: '下一步按钮', selector: 'text=下一步' }, ]; for (const check of checks) { const count = await page.locator(check.selector).count(); console.log(` ${count > 0 ? '✅' : '❌'} ${check.name}`); } // 3. 测试输入框 console.log('\n3. 测试输入框:'); // 尝试查找并点击输入区域 const textareas = await page.locator('textarea').all(); console.log(` 找到 ${textareas.length} 个 textarea`); if (textareas.length > 0) { // 点击输入框 await textareas[0].click(); await page.waitForTimeout(500); // 输入文字 await textareas[0].fill('测试视频标题123'); await page.waitForTimeout(500); // 检查值 const value = await textareas[0].inputValue(); console.log(` ${value === '测试视频标题123' ? '✅' : '❌'} 输入框可编辑,当前值: "${value}"`); // 截图 await page.screenshot({ path: 'ui-test-2-input.png', fullPage: true }); } else { console.log(' ❌ 未找到输入框'); } // 4. 测试按钮点击 console.log('\n4. 测试按钮:'); // 点击下一步 const nextBtn = await page.locator('text=下一步').first(); if (await nextBtn.isVisible()) { await nextBtn.click(); await page.waitForTimeout(1000); console.log(' ✅ 点击下一步成功'); await page.screenshot({ path: 'ui-test-3-step2.png', fullPage: true }); // 检查第二步内容 const step2Visible = await page.locator('text=视频尺寸').isVisible(); console.log(` ${step2Visible ? '✅' : '❌'} 进入第二步(视频尺寸)`); } // 5. 截图保存 console.log('\n5. 截图已保存:'); console.log(' - ui-test-1-loaded.png - 页面加载后'); console.log(' - ui-test-2-input.png - 输入测试'); console.log(' - ui-test-3-step2.png - 第二步'); console.log('\n✅ 测试完成!'); // 等待5秒让用户查看 console.log('\n等待5秒后关闭...'); await page.waitForTimeout(5000); } catch (error) { console.error('\n❌ 测试失败:', error.message); await page.screenshot({ path: 'ui-test-error.png', fullPage: true }); console.log('错误截图: ui-test-error.png'); } finally { await browser.close(); process.exit(0); } })();