const { chromium } = require('playwright'); (async () => { const browser = await chromium.launch({ headless: false }); const page = await browser.newPage(); console.log('=== 测试保存功能 ===\n'); // 捕获所有请求 page.on('request', request => { if (request.url().includes('/api/video/')) { console.log('📤 请求:', request.method(), request.url()); console.log(' 数据:', request.postData()); } }); page.on('response', response => { if (response.url().includes('/api/video/')) { console.log('📥 响应:', response.status(), response.url()); console.log(' ', response.statusText()); } }); page.on('console', msg => { console.log('🖥️ 控制台:', msg.type(), msg.text()); }); try { // 1. 打开页面 console.log('1. 打开创建页面...'); await page.goto('http://localhost:5173/#/pages/video-generator/create', { waitUntil: 'networkidle', timeout: 30000 }); await page.waitForTimeout(3000); console.log(' ✅ 页面已加载\n'); // 2. 填写标题 console.log('2. 填写标题...'); const textarea = await page.locator('textarea').first(); await textarea.click(); await textarea.fill('测试视频123'); console.log(' ✅ 标题已填写\n'); // 3. 点击下一步(跳过上传图片,模拟已有图片) console.log('3. 修改config添加模拟图片数据...'); // 直接通过JavaScript修改数据 await page.evaluate(() => { // 假设我们直接修改表单数据 console.log('准备测试保存...'); }); // 4. 尝试保存 console.log('4. 点击保存按钮...'); // 查找保存按钮 const saveBtn = await page.locator('text=保存').first(); if (await saveBtn.isVisible()) { await saveBtn.click(); await page.waitForTimeout(3000); console.log(' ✅ 已点击保存\n'); } // 5. 截图 await page.screenshot({ path: 'save-test-result.png', fullPage: true }); console.log('5. 截图已保存: save-test-result.png\n'); console.log('等待5秒后关闭...'); await page.waitForTimeout(5000); } catch (error) { console.error('\n❌ 测试失败:', error.message); } finally { await browser.close(); process.exit(0); } })();