| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- const { chromium } = require('playwright');
- (async () => {
- const browser = await chromium.launch({ headless: true });
- const context = await browser.newContext();
- const page = await context.newPage();
-
- console.log('=== 视频生成功能测试 ===\n');
-
- const errors = [];
- page.on('console', msg => {
- if (msg.type() === 'error') {
- errors.push(msg.text());
- }
- });
-
- try {
- // 1. 测试列表页面
- console.log('1. 测试列表页面...');
- await page.goto('http://localhost:5173/#/pages/video-generator/index', {
- waitUntil: 'networkidle',
- timeout: 30000
- });
- await page.waitForTimeout(3000);
- await page.screenshot({ path: 'test1-list.png', fullPage: true });
-
- const hasListContent = await page.locator('text=视频生成').first().isVisible();
- const hasCreateBtn = await page.locator('text=创建新视频').first().isVisible();
- console.log(' - 页面标题:', hasListContent ? '✅' : '❌');
- console.log(' - 创建按钮:', hasCreateBtn ? '✅' : '❌');
-
- // 2. 进入创建页面
- console.log('\n2. 测试创建页面...');
- await page.goto('http://localhost:5173/#/pages/video-generator/create', {
- waitUntil: 'networkidle',
- timeout: 30000
- });
- await page.waitForTimeout(2000);
- await page.screenshot({ path: 'test2-create.png', fullPage: true });
-
- const hasTitleInput = await page.locator('input[placeholder="给视频起个标题"]').first().isVisible();
- const hasImageBtn = await page.locator('text=添加图片').first().isVisible();
- const hasAudioBtn = await page.locator('text=添加音频').first().isVisible();
- const hasNextBtn = await page.locator('text=下一步').first().isVisible();
-
- console.log(' - 标题输入框:', hasTitleInput ? '✅' : '❌');
- console.log(' - 添加图片按钮:', hasImageBtn ? '✅' : '❌');
- console.log(' - 添加音频按钮:', hasAudioBtn ? '✅' : '❌');
- console.log(' - 下一步按钮:', hasNextBtn ? '✅' : '❌');
-
- // 3. 测试API
- console.log('\n3. 测试后端API...');
- const apiRes = await page.evaluate(async () => {
- try {
- const res = await fetch('http://localhost:3000/api/video/projects');
- const data = await res.json();
- return { ok: res.ok, status: res.status, data };
- } catch (e) {
- return { error: e.message };
- }
- });
-
- if (apiRes.error) {
- console.log(' ❌ API错误:', apiRes.error);
- } else {
- console.log(' ✅ API正常');
- console.log(' - 状态:', apiRes.status);
- console.log(' - 项目数:', apiRes.data?.data?.items?.length || 0);
- }
-
- // 4. 检查错误
- console.log('\n4. 检查JavaScript错误...');
- if (errors.length > 0) {
- console.log(' ⚠️ 发现', errors.length, '个错误:');
- errors.slice(0, 5).forEach((err, i) => {
- console.log(` ${i + 1}. ${err.substring(0, 100)}`);
- });
- } else {
- console.log(' ✅ 无JavaScript错误');
- }
-
- console.log('\n✅ 测试完成!');
- console.log('截图已保存: test1-list.png, test2-create.png');
-
- } catch (error) {
- console.error('\n❌ 测试失败:', error.message);
- await page.screenshot({ path: 'test-error.png', fullPage: true });
- }
-
- await browser.close();
- process.exit(0);
- })();
|