Files
nanocode/happy-games/games/tetris/test_playcanvas_version.py
T
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

84 lines
2.7 KiB
Python

#!/usr/bin/env python3
"""
测试新的PlayCanvas版俄罗斯方块
"""
from playwright.sync_api import sync_playwright
import time
def test_playcanvas_tetris():
print("🎮 测试 PlayCanvas版俄罗斯方块")
print("=" * 60)
url = "http://129.211.173.87:8895/games/tetris/"
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)"
)
page = context.new_page()
# 收集日志
logs = []
page.on("console", lambda msg: logs.append({"type": msg.type, "text": msg.text}))
try:
print("📡 加载页面...")
page.goto(url, wait_until="networkidle", timeout=15000)
time.sleep(3)
# 检查PlayCanvas加载
playcanvas_logs = [l for l in logs if "PlayCanvas" in l["text"]]
print(f"✅ PlayCanvas日志: {len(playcanvas_logs)}条")
for log in playcanvas_logs[:3]:
print(f" {log['text']}")
# 点击开始
print("\n🔘 点击开始游戏...")
start_btn = page.query_selector("text=开始游戏")
if start_btn:
start_btn.click()
print("✅ 开始按钮点击成功")
else:
print("❌ 未找到开始按钮")
return
# 等待游戏运行
print("⏳ 等待游戏运行5秒...")
time.sleep(5)
# 测试键盘控制
print("\n⌨️ 测试键盘控制...")
page.keyboard.press("ArrowLeft")
time.sleep(0.5)
page.keyboard.press("ArrowRight")
time.sleep(0.5)
page.keyboard.press("ArrowUp")
time.sleep(0.5)
# 分析日志
print("\n📊 日志分析:")
errors = [l for l in logs if l["type"] == "error"]
print(f" 错误数: {len(errors)}")
if errors:
print(" ❌ 错误日志:")
for err in errors[:5]:
print(f" {err['text'][:100]}")
else:
print(" ✅ 无JavaScript错误")
# 截图
page.screenshot(path="/tmp/playcanvas_tetris_test.png")
print("\n📸 截图保存: /tmp/playcanvas_tetris_test.png")
print("\n✅ 测试完成!")
finally:
browser.close()
if __name__ == "__main__":
test_playcanvas_tetris()