Files
tsp_v_onlinetime_pa/plans/login_fix_plan.md

72 lines
1.9 KiB
Markdown
Raw Normal View History

# VIN 批量查询爬虫 - 登录修复计划
## 问题分析
### 当前错误
- 登录过程出错,错误信息为空
- 截图已保存login_error.png
- 错误堆栈显示 Selenium 无法找到元素或页面加载异常
### 根本原因
1. **页面加载等待不足**:登录页面可能需要更长时间加载
2. **元素定位不准确**CSS 类名或 XPath 可能已变化
3. **验证码处理逻辑**:验证码输入后可能需要额外等待
4. **登录结果检测不准确**:仅检查错误提示,未验证登录成功
## 修复方案
### 1. 优化页面加载等待
- 使用 `EC.presence_of_element_located` 等待登录表单
- 增加显式等待时间30秒
- 添加页面加载完成检测
### 2. 改进元素定位策略
- 使用多种定位方式组合class、name、placeholder
- 添加容错机制,当一种定位失败时尝试其他方式
- 使用更稳定的 XPath 表达式
### 3. 完善验证码处理
- 自动检测验证码是否存在
- 保存验证码截图供人工识别
- 添加验证码输入后的确认等待
### 4. 增强登录结果验证
- 检查 URL 是否跳转到首页
- 检查是否存在登出按钮或用户头像
- 检查页面元素是否消失(登录表单)
### 5. 错误处理和日志
- 添加详细的错误日志
- 保存错误截图
- 提供重试机制
## 具体修改点
### 修改 `login()` 方法
1. 增加页面加载等待
2. 改进元素定位逻辑
3. 完善验证码处理
4. 增强登录结果验证
5. 添加详细日志
### 修改 `wait_for_query_page()` 方法
1. 优化页面检测逻辑
2. 添加手动干预选项
### 修改 `main()` 函数
1. 添加配置验证
2. 改进错误处理流程
## 测试计划
1. 单独测试登录功能
2. 测试验证码处理流程
3. 测试批量查询功能
4. 测试完整流程
## 预期结果
- 登录成功率提升至 95% 以上
- 自动处理验证码或提示人工输入
- 批量查询稳定运行
- 错误处理更加完善