fs-lawrisk/tests/test_ui_screenshots.py

95 lines
3.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
"""
测试LawRisk界面的截图工具
用于验证更新后的政务风格界面设计
"""
from playwright.sync_api import sync_playwright, expect
import os
def test_login_page(page):
"""测试登录页面"""
print("📝 Testing login page...")
page.goto('http://localhost:8000/fs-ai-asistant/api/workflow/lawrisk/login')
page.wait_for_load_state('networkidle')
page.screenshot(path='/tmp/login_page.png', full_page=True)
print("✅ Login page screenshot saved to /tmp/login_page.png")
def test_v2_tester(page):
"""测试V2测试界面"""
print("📝 Testing V2 tester page...")
page.goto('http://localhost:8000/static/v2_tester.html')
page.wait_for_load_state('networkidle')
page.screenshot(path='/tmp/v2_tester.png', full_page=True)
print("✅ V2 tester screenshot saved to /tmp/v2_tester.png")
def test_db_admin_page(page):
"""测试数据库管理页面(需要登录)"""
print("📝 Testing DB admin page...")
# 先访问登录页面
page.goto('http://localhost:8000/fs-ai-asistant/api/workflow/lawrisk/login')
page.wait_for_load_state('networkidle')
# 尝试登录(如果有默认账户)
try:
page.fill('input[name="username"]', 'admin')
page.fill('input[name="password"]', 'admin123')
page.click('button[type="submit"]')
page.wait_for_load_state('networkidle')
page.wait_for_timeout(2000)
except Exception as e:
print(f"⚠️ Login might not work: {e}")
# 然后访问数据库管理页面
page.goto('http://localhost:8000/static/db_admin.html')
page.wait_for_load_state('networkidle')
page.screenshot(path='/tmp/db_admin.png', full_page=True)
print("✅ DB admin screenshot saved to /tmp/db_admin.png")
def test_super_admin_page(page):
"""测试超级管理员页面(需要登录)"""
print("📝 Testing super admin page...")
page.goto('http://localhost:8000/static/super_admin.html')
page.wait_for_load_state('networkidle')
page.screenshot(path='/tmp/super_admin.png', full_page=True)
print("✅ Super admin screenshot saved to /tmp/super_admin.png")
def main():
print("🚀 Starting UI screenshot tests...\n")
print("=" * 60)
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
context = browser.new_context(
viewport={'width': 1920, 'height': 1080},
device_scale_factor=1
)
page = context.new_page()
# 测试所有页面
try:
test_login_page(page)
print()
test_v2_tester(page)
print()
test_db_admin_page(page)
print()
test_super_admin_page(page)
print()
except Exception as e:
print(f"❌ Error during testing: {e}")
import traceback
traceback.print_exc()
browser.close()
print("=" * 60)
print("\n✅ All tests completed!")
print("\n📊 Screenshots saved:")
print(" - /tmp/login_page.png (登录页面)")
print(" - /tmp/v2_tester.png (V2测试界面)")
print(" - /tmp/db_admin.png (数据库管理界面)")
print(" - /tmp/super_admin.png (超级管理员界面)")
if __name__ == '__main__':
main()