#!/usr/bin/env python3 """ 检查登录页面结构 """ from playwright.sync_api import sync_playwright import time with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() # 访问登录页面 page.goto("http://localhost:3002/login") page.wait_for_load_state("networkidle") # 截图 page.screenshot(path="/tmp/login_page.png") # 获取页面内容 print("页面URL:", page.url) print("\n页面标题:", page.title()) # 查找所有输入框 inputs = page.locator('input').all() print(f"\n找到 {len(inputs)} 个输入框:") for i, inp in enumerate(inputs): try: placeholder = inp.get_attribute('placeholder') input_type = inp.get_attribute('type') print(f" {i+1}. type={input_type}, placeholder={placeholder}") except: pass # 查找所有按钮 buttons = page.locator('button').all() print(f"\n找到 {len(buttons)} 个按钮:") for i, btn in enumerate(buttons): try: text = btn.text_content() print(f" {i+1}. {text}") except: pass # 尝试登录 print("\n尝试登录...") # 填写用户名 username_input = page.locator('input[type="text"], input:not([type])').first username_input.fill("admin") print("填写用户名: admin") # 填写密码 password_input = page.locator('input[type="password"]').first password_input.fill("Test@123") print("填写密码: Test@123") # 点击登录按钮 login_button = page.locator('button:has-text("登录")').first login_button.click() print("点击登录按钮") # 等待跳转 time.sleep(5) print(f"\n登录后URL: {page.url}") page.screenshot(path="/tmp/after_login.png") # 检查是否有错误消息 error_msg = page.locator('.el-message--error, .error-message').first if error_msg.is_visible(): print(f"错误消息: {error_msg.text_content()}") browser.close()