60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
检查用户管理页面的请求
|
|
"""
|
|
|
|
from playwright.sync_api import sync_playwright
|
|
import time
|
|
|
|
with sync_playwright() as p:
|
|
browser = p.chromium.launch(headless=True)
|
|
context = browser.new_context()
|
|
page = context.new_page()
|
|
|
|
# 监听网络请求
|
|
def handle_request(request):
|
|
if '/api/' in request.url and not request.url.endswith('.ts'):
|
|
headers = request.headers
|
|
print(f"\n请求: {request.method} {request.url}")
|
|
if 'authorization' in headers:
|
|
print(f" Authorization: {headers['authorization'][:50]}...")
|
|
else:
|
|
print(f" ⚠️ 没有Authorization头!")
|
|
|
|
def handle_response(response):
|
|
if '/api/' in response.url and not response.url.endswith('.ts'):
|
|
print(f"响应: {response.status} {response.url}")
|
|
if response.status == 401:
|
|
print(f" ⚠️ 401错误!")
|
|
|
|
page.on('request', handle_request)
|
|
page.on('response', handle_response)
|
|
|
|
# 登录
|
|
print("登录...")
|
|
page.goto("http://localhost:3002/login")
|
|
page.wait_for_load_state("networkidle")
|
|
page.fill('input[placeholder="请输入用户名"]', 'admin')
|
|
page.fill('input[placeholder="请输入密码"]', 'admin123')
|
|
page.click('button:has-text("登录")')
|
|
|
|
# 等待Token
|
|
for i in range(10):
|
|
time.sleep(1)
|
|
token = page.evaluate("localStorage.getItem('token')")
|
|
if token:
|
|
print(f"\n登录成功")
|
|
break
|
|
|
|
# 访问用户管理
|
|
print("\n\n访问用户管理...")
|
|
page.goto("http://localhost:3002/users")
|
|
page.wait_for_load_state("networkidle")
|
|
time.sleep(3)
|
|
|
|
print(f"\n最终URL: {page.url}")
|
|
token_after = page.evaluate("localStorage.getItem('token')")
|
|
print(f"Token: {'存在' if token_after else '不存在'}")
|
|
|
|
browser.close()
|