#!/usr/bin/env python3 """ 测试简单循环版本 """ from playwright.sync_api import sync_playwright import time def test_simple_loop(): """测试简单循环版本""" print("🎮 测试简单循环版本") print("=" * 60) url = "http://129.211.173.87:8895/games/tetris/tetris_simple_loop.html" print(f"🌐 测试URL: {url}") with sync_playwright() as p: browser = p.chromium.launch(headless=True) context = browser.new_context( viewport={"width": 1280, "height": 720}, user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" ) page = context.new_page() try: # 导航到页面 print("📡 加载页面...") page.goto(url, wait_until="networkidle", timeout=10000) print("✅ 页面加载成功") # 等待初始化 time.sleep(2) # 收集日志 logs = [] page.on("console", lambda msg: logs.append({ "type": msg.type, "text": msg.text })) # 点击开始按钮 print("🔘 点击开始按钮...") start_btn = page.query_selector("#start-btn") if start_btn: start_btn.click(timeout=3000) print("✅ 开始按钮点击成功") else: print("❌ 未找到开始按钮") return # 等待游戏运行 print("⏳ 等待游戏运行20秒...") time.sleep(20) # 分析日志 print("\n📊 日志分析:") spawn_logs = [log for log in logs if "生成新方块" in log["text"]] move_logs = [log for log in logs if "移动方块" in log["text"] or "游戏循环" in log["text"]] error_logs = [log for log in logs if log["type"] == "error"] print(f" 总日志数: {len(logs)}") print(f" 方块生成日志: {len(spawn_logs)}") print(f" 方块移动日志: {len(move_logs)}") print(f" 错误日志: {len(error_logs)}") # 显示关键日志 if spawn_logs: print(f"\n🧱 方块生成记录:") for i, log in enumerate(spawn_logs[-3:]): print(f" {i+1}. {log['text']}") if move_logs: print(f"\n🚀 方块移动记录:") for i, log in enumerate(move_logs[-10:]): print(f" {i+1}. {log['text']}") if error_logs: print(f"\n❌ 错误记录:") for i, log in enumerate(error_logs): print(f" {i+1}. {log['text']}") # 评估 print("\n📈 测试结果:") if len(spawn_logs) > 0: print(f" ✅ 方块生成正常 ({len(spawn_logs)}次)") else: print(" ❌ 方块未生成") if len(move_logs) > 0: print(f" ✅ 方块移动正常 ({len(move_logs)}次)") print(f" ✅ 游戏循环工作正常") else: print(" ❌ 方块未移动") print(" ❌ 游戏循环可能有问题") if len(error_logs) == 0: print(" ✅ 无JavaScript错误") else: print(f" ❌ 有{len(error_logs)}个JavaScript错误") # 截图 screenshot_path = "/tmp/simple_loop_test.png" page.screenshot(path=screenshot_path, full_page=True) print(f"\n📸 截图保存: {screenshot_path}") # 总体评估 print("\n🏆 总体评估:") if len(spawn_logs) > 0 and len(move_logs) > 0: print(" 🎉 完美! 简单循环版本工作正常!") print(" 🚀 游戏可以在Windows浏览器上正常运行!") elif len(spawn_logs) > 0: print(" 👍 部分成功! 方块生成但未移动") print(" 🔧 需要检查移动逻辑") else: print(" ⚠️ 失败! 游戏未正常工作") print(" 🔧 需要深入调试") finally: page.close() context.close() browser.close() print("\n✅ 测试完成!") if __name__ == "__main__": test_simple_loop()