test-save.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. const { chromium } = require('playwright');
  2. (async () => {
  3. const browser = await chromium.launch({ headless: false });
  4. const page = await browser.newPage();
  5. console.log('=== 测试保存功能 ===\n');
  6. // 捕获所有请求
  7. page.on('request', request => {
  8. if (request.url().includes('/api/video/')) {
  9. console.log('📤 请求:', request.method(), request.url());
  10. console.log(' 数据:', request.postData());
  11. }
  12. });
  13. page.on('response', response => {
  14. if (response.url().includes('/api/video/')) {
  15. console.log('📥 响应:', response.status(), response.url());
  16. console.log(' ', response.statusText());
  17. }
  18. });
  19. page.on('console', msg => {
  20. console.log('🖥️ 控制台:', msg.type(), msg.text());
  21. });
  22. try {
  23. // 1. 打开页面
  24. console.log('1. 打开创建页面...');
  25. await page.goto('http://localhost:5173/#/pages/video-generator/create', {
  26. waitUntil: 'networkidle',
  27. timeout: 30000
  28. });
  29. await page.waitForTimeout(3000);
  30. console.log(' ✅ 页面已加载\n');
  31. // 2. 填写标题
  32. console.log('2. 填写标题...');
  33. const textarea = await page.locator('textarea').first();
  34. await textarea.click();
  35. await textarea.fill('测试视频123');
  36. console.log(' ✅ 标题已填写\n');
  37. // 3. 点击下一步(跳过上传图片,模拟已有图片)
  38. console.log('3. 修改config添加模拟图片数据...');
  39. // 直接通过JavaScript修改数据
  40. await page.evaluate(() => {
  41. // 假设我们直接修改表单数据
  42. console.log('准备测试保存...');
  43. });
  44. // 4. 尝试保存
  45. console.log('4. 点击保存按钮...');
  46. // 查找保存按钮
  47. const saveBtn = await page.locator('text=保存').first();
  48. if (await saveBtn.isVisible()) {
  49. await saveBtn.click();
  50. await page.waitForTimeout(3000);
  51. console.log(' ✅ 已点击保存\n');
  52. }
  53. // 5. 截图
  54. await page.screenshot({ path: 'save-test-result.png', fullPage: true });
  55. console.log('5. 截图已保存: save-test-result.png\n');
  56. console.log('等待5秒后关闭...');
  57. await page.waitForTimeout(5000);
  58. } catch (error) {
  59. console.error('\n❌ 测试失败:', error.message);
  60. } finally {
  61. await browser.close();
  62. process.exit(0);
  63. }
  64. })();